配列を「ヒープ(最大ヒープ)」と呼ばれる木構造に見立ててソートを行うアルゴリズムです。
- 配列全体を最大ヒープに変換する(親 >= 子 の状態にする)。
- ヒープの最大値(ルート要素=配列の先頭)を配列の末尾と交換し、ソート済みとする。
- 残った部分で再度ヒープ構造を修復する(heapify)。
これを繰り返すことで、末尾から順に大きい値が確定していきます。計算量: O(N log N)
特徴: 追加のメモリ領域をほとんど使わない(インプレースソート)のに計算量が良い。ただし、メモリアクセスが連続しないため、実測ではクイックソートより遅くなることが多い。

共有コメント 共有されるコメント欄です。