アルゴリズムとデータ構造 外伝

いろいろなソートアルゴリズム

大小関係が定められたたくさんのデータを、小さい順(昇順)あるいは大きい順(降順)に並べ替える作業をソート(整列)と言います。この処理は、さまざまなプログラムの中で頻繁に使われ、そのゆえ、古くからいろいろなアルゴリズムが考案されてきました。

並べ替えは、主にデータベースなどの大量のデータを処理する必要のあるプログラムで有用です。試験の点数の高い順番に並べ替えて、上位1000人を合格にするなどの場合は、点数による並べ替えが行われます。また、住所録のデータを住所毎にまとめて参照したい場合は、住所(文字列)による並べ替えが行われます。

このページでは、多くあるソートアルゴリズムのうち、以下の6通りのアルゴリズムについて説明し、Javaアプレットで実際の並べ替えの様子を見て、その特徴を理解することにします。

また、それぞれのソート法を比較し、時と場合によってそれぞれの並べ替えに向き不向きがあるかどうかなどを検討します。

テキストのプログラム例は Pascal で記述してありますが、WWWのページ内で動作を見ることができるように、ここでのプログラムはすべて Java を用いて説明します。皆さんは実際上は Java を使用する機会が多いでしょうから、何かの参考になるかもしれません。

なお、ここでいう「テキスト」とは、

「アルゴリズムとデータ構造」 茨木俊秀著 昭晃堂

です。

next →