大小の関係が決められたデータを小さい順や大きい順に並び替える作業はソートと呼ばれ、コンピュータには欠かせないプログラムです。そのため、ソートをより早く・確実に・効率良く実行できるように、さまざまなアルゴリズムが考案されてきました。そんなコンピュータの発展にかかせない役割を果たしてきたソートアルゴリズムをビジュアル化することで直感的に理解できるのが「SORTING」です。

SORTING
http://sorting.at/


これがSORTINGのサイトページです。ソートアルゴリズムを選択してページ下の「PLAY」ボタンをクリックすると、そのソートアルゴリズムを使ってボールが並び替えられます。


たとえばアルゴリズム「クイックソート」でランダムに並んだ状態の大きさの異なるボールを左から小さいもの順に並び替えるとこんな感じです。


選べるソートアルゴリズムは、クイックソート・ヒープソートスムースソートシェルソートマージソートサイクルソート選択ソート挿入ソートノームソートコムソートバブルソートシェーカーソート奇遇転置ソート基数ソートとなっています。

実際にソートアルゴリズムを動かしてみます。まず、ページ左の「ADD NEW ALGORITHM」をクリック。


次にソートアルゴリズムを選択します。今回は、「SMOOTH SORT(スムースソート)」をクリック。


COLOR(ボールの色)→SIZE(ボールの数)→INITIAL CONDITION(初期状態)を順番に選んでいきます。今回は、ピンク色→10個→Reversed(正反対)を選択しました。最後に「VISUALIZE ALGORITHM」をクリックすればアルゴリズムの設定が完了です。


アルゴリズムが追加されたのを確認してから下の「PLAY」ボタンをクリックすれば並び替えがスタートします。


今回選んだ条件だとこんな感じ。


また、複数のアルゴリズムを同時に動かして比べることもできます。速度は遅いが安定な「バブルソート」と爆速で有名な「クイックソート」を比較した様子は、下の写真をクリックすれば確認できます。


アルゴリズムの内容を文章で学ぼうとしてもなかなか理解しにくいものですが、SORTINGを使えばアルゴリズムの特徴を直感的に理解できそうです。