クイックソートのプログラムは以下のようである。
12を2分木の根(h 1 )に移動し、shiftdown操作を行なう。
なお、ここでいう「ヒープ」はメモリの動的割り当てで使用する「ヒープ領域」とは違います。
これが最大ヒープです。
つまり交換回数オーダーは O N となります。
同じアルゴリズムでも書く人によって実行処理効率が変わる感じですね。
プログラム6-3で紹介した関数と別なものをここでは紹介した。
今回は出てこないのですが、一応セットで覚えておきましょう。
自分(親)よりも子が大きい場合は交換• 最大ヒープは、 すべてのノードにおいて「親」>「子」が成立すればいいわけでしたね。
単純選択ソートを改良し高速にしたシェルソートについて学びます。
データ 10, 20, 30 を追加すると、図のようにデータが追加され rear は 3 になります。
左下のグループ("3","2","1")で比較。
それは、データの検索や参照を考えると、より早い時間で目的のデータが得られ易いからである。
"4"が一番大きいので、"4"と"1"を入れ替える• (2)ヒープソート ヒープ(heap)とは、以下の条件を満たす2分木のことである。
右下のグループ("5","6")で比較。
では、交換しましょう。