もどる
fire1.gif その1 ソート 〜データの並び替え〜 00/12/14

はじめに

今回紹介する「ソート」というテクニックは、分厚い本が一冊書けてしまうほど 奥が深く、よく使われるものです。ここでは、その中で僕がよく使うものをとりあげます。

ソートって何

ソートとは、サブタイトルにもあるとおりデータの並び替えです。 数値を大きい順、小さい順に並び替えたり、文字列をあいうえお順に並べ替えたりすることです。 それをプログラムにやらせる。それだけです。

並べ替え方(アルゴリズム)

データを並び替えるといっても、その方法はいろいろとあるわけですが、 今回取り上げる方法は「選択ソート」と呼ばれるものです。 どんなアルゴリズムかというと、 「データの中から一番小さいものを選び、配列の先頭に持ってくる」を繰り返して行うというものです。

その@
5 0 10 2
灰色の要素の中から最小値を選び、先頭に持っていく。
そのA
0 5 10 2
同じように、灰色の要素の中から最小値を選び、先頭に持っていく。
そのB
0 2 10 5
同じように、灰色の要素の中から最小値を選び、先頭に持っていく。
そのC
0 2 5 10
完成!!
図.選択ソートの流れ

プログラムのソース

さて、上の図でアルゴリズムはわかってもらったと思いますので、サンプルソースを載せておきます。 Integer型の変数を小さい順に並べ替えます。
var
   data:array [0..9] of Integer;
	
procedure SelectSort;
var
    i,j,d1,d2,tmp:Integer;
begin

  for i:= 0 to 9 do begin
    d1:=data[i];
    for j:= i+1 to 9 do begin
      d2:=data[j];
      if d1 > d2 then begin
         tmp:=d1; d1:=d2; d2:=d1;
      end;
    end;
  end;

end;
次へ進む




もどる