商業科 科目「プログラミング」 整列,探索(線形探索,二分探索) 1.整 列 ある順番にデータを並べ替えることを 整列(ソート・分類) 小さい順に並べ替えることを昇順(正順) 大きい順に並べ替えることを降順(逆順) 交換法,選択法,挿入法 整列 (交換法)昇順 (1) (2) (3) (4) (5) 24 17 16 31 18 17 24 16 31 18 17 16 24 31 18 17 16 24 31 18 17 16 24 18 31 整列 (1) (2) (3) (4) (5) 17 16 24 18 31 16 17 24 18 31 16 17 24 18 31 16 17 18 24 31 整列 (1) (2) (3) (4) (5) 16 17 18 24 31 16 17 18 24 31 16 17 18 24 31 整列 (1) (2) (3) (4) (5) 16 17 18 24 31 16 17 18 24 31 昇順に整列 24 17 16 31 18 整列 ループ1 J は4から始まり 1ずつ減少して1まで Jは4からの4はデータ件数-1の値 ループ2 Kは1から始まり 1ずつ増加してJまで A(k)>A(k+1) KはJの値まで変化する 保存場所 No 24 Yes 入れ換え ループ2 ループ1 ③ ① 17 24 A(k) ② 17 24 A(k+ 整列 J=4 K=Jまで繰り返す (1) (2) (3) (4) (5) K=1 24 17 16 31 18 K=2 17 24 16 31 18 K=3 17 16 24 31 18 K=4 17 16 24 31 18 17 16 24 18 31 整列 J=3 (1) (2) (3) (4) (5) K=1 17 16 24 18 31 K=2 16 17 24 18 31 K=3 16 17 24 18 31 16 17 18 24 31 整列 J=2 (1) (2) (3) (4) (5) K=1 16 17 18 24 31 K=2 16 17 18 24 31 16 17 18 24 31 整列 K=1 J=1 (1) (2) (3) (4) (5) 16 17 18 24 31 16 17 18 24 31 昇順に整列 24 17 16 31 18 2.検索 配列などのデータの集まり から必要なデータを取り出すこ とを検索(サーチ) 線形探索,二分探索 線形探索 探索データ:X=58 X=58 (1) 36 X=58 (2) 24 X=58 (3) 42 X=58 (4) 58 (5) 77 (6) 63 (7) 81 (8) 11 探索データは4番目:58 線形探索 探索データ:X=46 X=46 (1) 36 X=46 (2) 24 X=46 (3) 42 X=46 (4) 58 X=46 (5) 77 X=46 (6) 63 X=46 (7) 81 X=46 (8) 11 探索データはなし 探索データ:X=58 二分探索 下限=0 (1) 11 中央値=(下限+上限)/2 ※小数点以下切り捨て (2) 24 (3) 36 (4) 42 中央値 下限=4 (5) 58 (5) 58 (6) 63 (6) 63 中央値 (7) 77 (7) 77 (8) 81 (8) 81 上限=9 上限=9 下限=4 (5) 58 中央値 上限=6 探索データは5番目:58 探索データ:X=46 二分探索 下限=0 (1) 11 中央値=(下限+上限)/2 ※小数点以下切り捨て (2) 24 (3) 36 (4) 42 中央値 下限=4 下限=4 下限=4 上限=下限+1 (5) 58 (5) 58 (6) 63 (6) 63 中央値 (7) 77 (7) 77 (8) 81 (8) 81 上限=9 上限=9 (5) 58 中央値 上限=5 上限=6 探索データはなし 線形探索 探索したいデータ Xの決定 ループ 添字は1からはじまり 1ずつふえて8まで H(添字)=X YES NO ループ 添字>8 YES NO 探索したいデータは H(添字) 探索したいデータは 存在しない 探索したいデータ Xの決定 二分探索 0→下限 9→上限 ループ 上限=下限+1まで 上限=下限+1 (下限+上限)/2 →中央値 H(中央値)=X NO YES NO H(中央値)>X YES NO 中央値→下限 ループ YES 中央値→上限 探索したいデータは H(中央値) 探索したいデータは 存在しない
© Copyright 2024 ExpyDoc