Pythonとか)ヒープソートヒープソートとは常に最大値(最小値)を取り出すことができるデータ構造があれば、それをソートアルゴリズムに援用できます。呼ばれるデータ構造を用いてソートを行うアルゴリズムです。二分ヒープと呼ばれるデータ構造は、二分木を使って作られるデータ構造で、各ノードの値は常に子ノードの値より大きいか等しくなるように配置されます。二分ヒープのルートノードの値は最大値となります。よって、「ヒープへの追加(UpHeap)」と「ヒープからルートの削除(DownHeap)」についての処理ができれば、ヒープソートを実装できます。ため安定して高速で動作します。なんだかんだクイックソートのほうが速いようです。ヒープソートのシミュレーション背景色が黄色のタイミングで比較が実行されています。ツリー形状で表示させて実行すると、徐々にヒープが出来上がっていきます。緑色のタイミングでヒープ木が完成しています。アルゴリズムの解説データを取り出し、ヒープに追加(up-heap)します。すべてのデータをヒープに追加するまで繰り返します。ルートデータを取り出します(down-heap)。ソート済データに取り出したデータを追加します。全データ繰り返してソートが完了します。ヒープ構造はデータ自体の並びのみで表現できる(ポインタなどを持つ必要がない)という利点を活かし、元のデータ領域をそのまま使うことで内部ソートとして実装できます。