【音付き】15種のソートアルゴリズムの可視化
こういうアルゴリズムの可視化(可聴化?)って見てて楽しいですよね.
というわけでC++のソート関数(std::sort, stable_sort, sort_heap)の可視化を行ってみました.
やっぱりこう,ぼーっと実行画面を見てると嫌なことを忘れられていいですね.
たぶん,よくある方法だと思うんですが,ソート関数に渡す比較関数内で可視化処理などを行っています.VCのSTLのソースを見てみると,std::sortではクイックソートで配列を分割した後に要素数が一定数(32)未満なら挿入ソート,それ以上ならヒープソートを使うようです.また,効率的な分割がされていない場合にはヒープソートへ切り替えるという処理をしているようです.今回は,一回分割をするとすぐに要素数が32未満になってしまって挿入ソートが使われるので,std::sort_heapと比べて結構比較回数がかかっています.たぶん,もっと要素数が大きな場合にはまた違った結果になるでしょう.