整列5(目で見るソート)

データはどのように整列されていくのか

選択ソートとバブルソートの手法を学んだが、選択ソートの方が一般に速い。ソートは比較と代入の繰り返しなので、その回数をいかに少なくするかというのがポイント。バブルソートは隣どうしで交換していくので、一番小さいものを一回だけ交換する選択ソートより不利になったのだろう。

しかし、両方ともデータの数が増えるとO(n2)のオーダーで時間がかかるということがわかっている。もっと速いソートの手法はないのだろうか。University of British Columbia の Jason Harrison 氏がいろいろな手法(アルゴリズム)をまとめて紹介している。これによってデータがどのように整列されていくのかを見ながら、アルゴリズムの違いを実感し、また速さが大きく違うことを確認しよう。

使い方

下記のリンクを開くと、このような絵になっている。これは黒い線の長さがデータの大きさを表している。クリックするとデータは乱数で初期化され、整列がはじまり、小さいものが上になるようにソートされる。

いろいろなアルゴリズム

Jason Harrison 氏のページはこちら。 http://www.cs.ubc.ca/spider/harrison/Java/sorting-demo.html別のウインドウで開くのでいろいろ試してみよう。


聖愛高等学校
http://www.seiai.ed.jp/