第 週 ソー
挿入ソー 選択ソー バ ソー
必須問題 - :選択ソー
ータ構造 ア ム 参照
ア ム
• 要素 中 最小値 2番目 小さい値 … 残 い
要素 中 最小値選択 反復 整列 手法
選択ソー ポイン
最小値 探 step1 :そ 時点 整列 済
い い配列要素 中 最小値 探
入 替え 行 う(step2):最小値 値 確定さ
配列要素 入 替え
整列処理 終了:上記 step1 step 繰 返
最後 要素 一 手前 確定 整列処理 終
了
必須問題 - :選択ソー 例 昇順 /
EP :対象範囲 最小値 探 検索範囲
EP :未整列 先頭要素 交換 最小値
必須問題 - :選択ソー 例 昇順 /
EP :対象範囲 最小値 探 検索範囲
EP :未整列 先頭要素 交換 最小値
確定
必須問題 - :選択ソー 例 昇順 /
EP :対象範囲 最小値 探 検索範囲
最小値 EP :未整列 先頭要素 交換
必須問題 - :選択ソー 例 昇順 /
EP :対象範囲 最小値 探 検索範囲
最小値 EP :未整列 先頭要素 交換
確定 確定
必須問題 - :挿入ソー
ータ構造 ア ム 参照
ア ム
• 大 い順 小さい順 並 い 数列 あ 数 順
比較 そ 数列 挿入 並び替え こ 整列
手法
挿入ソー ポイン
値 入 替え く 挿入 :そ 時点
整列済 配列 対象要素 挿入
整列処理 終了:最後 要素 確定 整列処
理 終了
必須問題 - :挿入ソー 例 昇順 /
EP :対象範囲 最後 要素 適切 場所 挿入
検索範囲
EP :挿入さ 要素 後 要素 移動
必須問題 - :挿入ソー 例 昇順 /
EP :対象範囲 最後 要素 適切 場所 挿入
検索範囲
EP :挿入さ 要素 後 要素 移動
必須問題 - :挿入ソー 例 昇順 /
EP :対象範囲 最後 要素 適切 場所 挿入
検索範囲
EP :挿入さ 要素 後 要素 移動
必須問題 - :挿入ソー 例 昇順 /
EP :対象範囲 最後 要素 適切 場所 挿入
検索範囲
EP :挿入さ 要素 後 要素 移動
オ ョン課題 - :バ ソー
ア ム
• 隣 うし 要素 大小 比較 そ 交換
整列 手法
バ ソー ポイン
• 隣 う 配列要素 比較 :比較 要素 配列
先頭 順 後 へ 行く
• 入 替え 行 う:隣 う 逆順(大 小)
い 要素 交換
• 整列処理 終了: 番目(要素番号 ) 要素 値 確定
整列処理 終了
オ ョン課題 - :バ ソー 例 /3
>
>
>
>
交換
交換
交換
交換
オ ョン課題 - :バ ソー 例 /3
確定
>
>
交換 交換
交換 し
<
オ ョン課題 - :バ ソー 例 /3
確定
>
交換
>
交換
交換 し
<
ソー 中間状態 出力
確認用 ソー 中間状態 出力 う
参考 ロ ム 次ペー
Array = [ 91 63 71 14 60 1 24 13 80 15 ] -- start selection sort --
Array = [ 1 63 71 14 60 91 24 13 80 15 ] Array = [ 1 13 71 14 60 91 24 63 80 15 ] Array = [ 1 13 14 71 60 91 24 63 80 15 ] Array = [ 1 13 14 15 60 91 24 63 80 71 ] Array = [ 1 13 14 15 24 91 60 63 80 71 ] Array = [ 1 13 14 15 24 60 91 63 80 71 ] Array = [ 1 13 14 15 24 60 63 91 80 71 ] Array = [ 1 13 14 15 24 60 63 71 80 91 ] Array = [ 1 13 14 15 24 60 63 71 80 91 ] Array = [ 1 13 14 15 24 60 63 71 80 91 ] Array = [ 1 13 14 15 24 60 63 71 80 91 ] 必須問題9-1 チェッ 用出力例
参考 ロ ム:9-1,9-2,9-3共通
#define MAX_DATA int main(){
int numbers[MAX_DATA];
/* 略:変数宣言、numbers.datのファイル読込み */
printArray(numbers, n);
for ( ) {
for ( ) {
}
printArray(numbers, n); ー 条件
ソー 処理
ー 条件 ソー 処理 ソー 処理
ここ 処理 必要 い ソー もあ
ここ 処理 必要 い ソー もあ
ソー 前 配列 表示
n 読 込 要素数
配列 イ 定義
参考 ロ ム:9-1,9-2,9-3共通(printArray)
void printArray(int numbers[], int length){ int i=0;
printf("Array = [ ");
for (i = 0; i < length; i++) { printf("%d ", numbers[i]); }
printf("]¥n"); }