最大値を配列の始めに置く


サンプルプログラム 10 では、変数 max が最大値を表していました。今度は変数 max を使わないで、配列 d(i) の 1 番目の要素 d(1) に最大値が来るように配列を並び替えてみましょう。サンプルプログラム 10 の行番号 60 を削除、行番号 80 を変えて次のようにしてください。

サンプルプログラム11

上のプログラムは、行番号 60 と行番号 80 を除いて、サンプルプログラム 10 と同じなので、行番号 60 と行番号 80 のみ解説します。

プログラムを実行してみましょう。入力は先程と同様にデータ数 n = 3, データ 3, 5, -1 とします。

実行結果は上のようになるはずです。もちろん、サンプルプログラム 10 の実行結果と全く同じです。プログラムの実行過程を表の形で表します。ただし、表の各列は次の物を意味しています。

参照番号 行番号 d(i) i n
1 10 ?, ?, ? ? 3
2 20 ?, ?, ? ? 3
3 30 ?, ?, ? 1 3
4 40 3, ? ,? 1 3
5 50 3, ?, ? 1 3
6 30 3, ?, ? 2 3
7 40 3, 5, ? 2 3
8 50 3,5,? 2 3
9 30 3, 5, ? 3 3
10 40 3, 5, -1 3 3
11 50 3, 5, -1 3 3
12 70 3, 5, -1 2 3
13 80 5, 3, -1 2 3
14 90 5, 3, -1 2 3
15 70 5, 3, -1 3 3
16 80 5, 3, -1 3 3
17 90 5, 3, -1 3 3
18 100 5, 3, -1 3 3
19 110 5, 3, -1 3 3

今度のプログラムでは、配列 d(i) が並び替えられていることに注意してください。具体的には、上の表の参照番号 13 で 1 番目の要素と 2 番目の要素の値の交換が行われています。