プログラミング実習

プログラミング論
第十三回
繰り返し文の応用
データの並べ替えを考えてみよう



まず,「データが大きい順に並んでいる」
という状態は,どういう状態かを考えまし
ょう。
その状態を,「繰り返し」や「分岐」で簡潔
に表現できないか,を考えます。
次に,「その状態になっていなかったら,
どのような処理をすればよいか?」を考え
ましょう。
データの並べ替えを考えてみよう

データがn個あるとき,「データが大きい順
に並んでいる」状態は次のように定義でき
ます。
– [0]~[n-1]:[0]番目のデータが最も大きい
– [1]~[n-1]:[1]番目のデータが最も大きい
– [2]~[n-1]:[2]番目のデータが最も大きい
・・・
– [n-2]~[n-1]:[n-2]番目のデータが最も大きい
データの並べ替えを考えてみよう
– [0]~[n-1]:[0]番目のデータが最も大きい
– [1]~[n-1]:[1]番目のデータが最も大きい
– [2]~[n-1]:[2]番目のデータが最も大きい
・・・
– [n-2]~[n-1]:[n-2]番目のデータが最も大きい
データの並べ替えを考えてみよう
– [0]~[n-1]:[0]番目のデータが最も大きい
– [1]~[n-1]:[1]番目のデータが最も大きい
– [2]~[n-1]:[2]番目のデータが最も大きい
・・・
– [n-2]~[n-1]:[n-2]番目のデータが最も大きい
繰り返しでの表現?

iを0~n-2まで変化させながら,
[i]~[n-1]の中で[i]番目のデータが最も大きい
がすべて成り立つならば,大きい順に並んでい
る,と言える。
データの並べ替えを考えてみよう


iを0~n-2まで変化させながら,
[i]~[n-1]の中で[i]番目のデータが最も大きい
がすべて成り立つならば,大きい順に並んでい
る,と言える。
[i]番目が最も大きくない場合は,
[i]~[n-1]で最大値を探しだし,
その最大値と[i]番目のデータを交換する。
データの並べ替えを考えてみよう



まずは,「データを交換するプログラム」を考
えてみましょう。 (sort1.c)
次に,並べ替えを行うプログラムを考えてみ
ましょう。 (sort2.c)
他の方法を考えてみましょう。
中間テストについて



日時:10月16日(金)を予定
場所:4-302(PCは使わない,筆記のみ)
範囲など:
– 繰り返し(for文, while文)まで
– 講義で利用したプログラムリストから出題

ただし,ensyuで始まるプログラムのみ
– 穴埋め,結果予測,フローチャートからのプ
ログラム作成,新規プログラム作成,の出題
形式