院試 -KO- 完勝 PERFECT

タイトルは昔の迷作STGから。実際の所、残機ギリギリでの勝利でした。路頭に迷わなくてよかった。
そして突然だけど、院試期間中にプログラミングに飢えて一晩で作成した、ソートアルゴリズムの動作をコンソールウインドウで可視化しするソースを公開。もちろん各ソートの性能比較もできます。
バブルソート、選択ソート、挿入ソート、シェルソートクイックソート(再帰呼び出し、スタック管理)、マージソート(配列、連結リスト)、ヒープソートを実装。

viewable_sort_in_console.cpp


【使い方】

  1. リンク先の青色領域をクリックしてDLページへ。「viewable_sort_in_console.cpp」をクリックしてダウンロード。
  2. VisualC++などのC/C++IDEでファイルを開く。
  3. ソーステキスト内の一番上にある「オプション」内の項目の値(#define 項目名 値)を色々変更してみる。最初は何も触らずそのままでもOK。
  4. コンパイルを実行して動作を見る。


【コンソール画面の見方】
[ 非アニメーションモード ]

  • 「処理時間、比較回数、交換回数、関数の呼び出し回数」を各ソート毎に表示。要素数を1万くらいにすると顕著な差が見られる。

[ アニメーションモード ]

  • 上下に配列[0]〜[9]までの中身が表示される。下が現在の状態、上は1つ前の状態を表示。
  • その時点において、比較のために注目している配列の要素の番号が水色と暗い水色になる。
  • 要素の交換が発生すると赤色で表示される。
  • クイックソートマージソートなどの分割が起こるソートでは、分割の境界をピンクのバーで表示。選択ソートや挿入ソートの場合は、ソートが完了しているラインをピンク色のバーで表示。