std::sort可視化

【音付き】15種のソートアルゴリズムの可視化
こういうアルゴリズムの可視化(可聴化?)って見てて楽しいですよね.

というわけでC++のソート関数(std::sort, stable_sort, sort_heap)の可視化を行ってみました.
sort

std::sort
std_sort

std::stable_sort
stable_sort

std::sort_heap
heap_sort

やっぱりこう,ぼーっと実行画面を見てると嫌なことを忘れられていいですね.

たぶん,よくある方法だと思うんですが,ソート関数に渡す比較関数内で可視化処理などを行っています.VCのSTLのソースを見てみると,std::sortではクイックソートで配列を分割した後に要素数が一定数(32)未満なら挿入ソート,それ以上ならヒープソートを使うようです.また,効率的な分割がされていない場合にはヒープソートへ切り替えるという処理をしているようです.今回は,一回分割をするとすぐに要素数が32未満になってしまって挿入ソートが使われるので,std::sort_heapと比べて結構比較回数がかかっています.たぶん,もっと要素数が大きな場合にはまた違った結果になるでしょう.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください