- ベストアンサー
ヒープソートについて
ヒープでは親子関係を考えると親が子より小さい値をとりますよね。 それとは逆にヒープソートでは親が子より大きい値をとるとなっていますが何故でしょうか? ヒープソートもヒープと同様に親が子より小さい値をとると何か不便なのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
それは目的が昇順のソートか降順のソートかによって違うだけです。 昇順のソートをする場合、最大値を最後尾にもって行きますが、このためにはヒープの先頭に最大値が来るようなヒープでなければなりません。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
回答No.2
上へ(親へ)繰り上げるルールを、大きい方とするか、小さい方にするかは、ユーザーが、昇順を指定するか、降順を指定するかで、変える必要があります。 どちらもあり得るということです。教科書の例題などでは、昇順の場合だけを取り上げていることが多いため、ご質問が出るのでしょう。 >ヒープでは親子関係を考えると親が子より小さい値をとりますよね。 これも、大小どちらでも、「1つの」ヒープを考えている間、どちらかに統一して考えれば良いことです。 ○<教訓>全て教科書的な本などの説明は、判りやすい例 、簡単な例、1つの例を取り上げる傾向がある。 そのような本を見つづけていると、それだけが真理と思いやすい。いつも「他の例では」、「逆では」成り立つか、「実際は複雑なものの、どこを簡略化・簡単な例にしたか」をチェックしましょう。
質問者
お礼
両方あるんですね。知りませんでした。 ありがとうございました。
お礼
昇順のソートか降順のソートかの違いでしたか… ありがとうございました。