VBS(8) ソートのアルゴリズム(1)
バブルソート

メニューに戻りたいときはここをクリック。

ソート(sort)とはなんらかの大小関係により整列させることをいう。例えば大きい順に並べるとか小さい順に並べるのは最もシンプルなソートである。
アルゴリズム(algorithm)とはコンピュータに処理させるときの手順を言う。ムハマド・ビン・ムーサ・アル・フワーリズミーという9世紀アラビアの数学者がいたが、その名前アル・ファリズミがなまったものである。 「アル」というのはアラビア語の冠詞なので、アラビア語を語源とする単語には「アル」で始まるものが多い。例えば、アルコール、アルハンブラ、アルジェブラ(代数)、アルカリ、アルケミー(錬金術)

Lesson 1 (変数の値の交換)

a(1) と a(2) を交換するのに、以下の様なプログラムを書いてみた。
dim a(2)
a(1)=1:a(2)=2

a(1)=a(2) : a(2)=a(1)

msgbox a(1) & "," & a(2)
4行目で a(1) に a(2) を代入し、 a(2) に a(1) を代入している。 a(1) と a(2) がうまく交換されていれば、 2,1 と表示されるはずだが、現実には 2,2 と表示される。
つまり4行目の書き方では a(1) と a(2) は交換されないのである。理由はわかるだろうか。















4行目は
a(1)=a(2) : a(2)=a(1)
2つ目の文で a(2) に a(1) の値を代入しようとしているが、その前に a(1)=a(2) という文で元々の a(1) の値は破壊されてしまっているのである。
正しくは、一時的な変数を使って
temp=a(1) : a(1)=a(2) : a(2)=temp
のようにしなければならないのである。

Lesson 2 (ソートの方法1 バブル・ソート)

手順

解説

問題

dim x(30)
x(1)=-9: x(2)=29: x(3)=7: x(4)=28: x(5)=2: x(6)=1: x(7)=2: x(8)=-12: x(9)=13: x(10)=0
x(11)=0: x(12)=-19: x(13)=-3: x(14)=-10: x(15)=5: x(16)=8: x(17)=27: x(18)=15: x(19)=8: x(20)=1
x(21)=-7: x(22)=-12: x(23)=-8: x(24)=17: x(25)=25: x(26)=14: x(27)=16: x(28)=19: x(29)=19: x(30)=-1

上記プログラムに続けて、x(1)〜x(30)を大きい順に並べ替えて表示するプログラムを書け。なお、上記プログラムは Y:ドライブ(提出用)の 教科担任名のフォルダー中の vbs の中に、 vbs08.vbs という名前で保存してあるので、自分のフォルダー内にコピーして名前を変えてから使って良い。
完成したプログラムは vbs08-2-10-11-yourname.vbs (クラス番号名前は各自のものにせよ)という名前で保存して提出せよ。

憶えていますか?憶えましたか?



メニューに戻る

前   VBS(7)   繰り返し処理(その2)
次   VBS(9)   ソートのアルゴリズム(2) 単純選択ソート
第1回〜第10回の問題の回答

姉妹サイト
古代ローマローマ帝国 の歴史とコイン