プログラミング論 第十三回 繰り返し文の応用 データの並べ替えを考えてみよう まず,「データが大きい順に並んでいる」 という状態は,どういう状態かを考えまし ょう。 その状態を,「繰り返し」や「分岐」で簡潔 に表現できないか,を考えます。 次に,「その状態になっていなかったら, どのような処理をすればよいか?」を考え ましょう。 データの並べ替えを考えてみよう データが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で始まるプログラムのみ – 穴埋め,結果予測,フローチャートからのプ ログラム作成,新規プログラム作成,の出題 形式
© Copyright 2024 ExpyDoc