1 / 10

-プログラミング-

-プログラミング-. 二分探索. 佐賀商業高等学校. シンデレラを探せ!. シンデレラが忘れていった ガラスの靴. ×. ×. ×. ×. ×. ×. シンデレラ候補の足. この靴に合う足のサイズは、. 線形探索 は、 順番に 探していく方法なので、候補者が多くなると、探索にかなり時間がかかる可能性がある。. 線形探索 で、探してみよう。. この サイズの人. ×. ○. この人が シンデレラ. シンデレラを探せ!. シンデレラが忘れていった ガラスの靴. この靴に合う足のサイズは、. 二分探索 で探してみよう。 その前に、.

cain
Download Presentation

-プログラミング-

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. -プログラミング- 二分探索 佐賀商業高等学校

  2. シンデレラを探せ! シンデレラが忘れていった ガラスの靴 × × × × × × シンデレラ候補の足 この靴に合う足のサイズは、 線形探索は、順番に探していく方法なので、候補者が多くなると、探索にかなり時間がかかる可能性がある。 線形探索で、探してみよう。 この サイズの人 × ○ この人が シンデレラ

  3. シンデレラを探せ! シンデレラが忘れていった ガラスの靴 この靴に合う足のサイズは、 二分探索で探してみよう。 その前に、 小さい順に並べー!! シンデレラ候補の足

  4. シンデレラを探せ! 真ん中の人と比べると、 シンデレラが脱ぎ忘れていった ガラスの靴 この靴に合う足のサイズは、 二分探索で探してみよう。 小さい順に並べー!! > 真ん中の人が 大きいということは 1.当然、真ん中の人はシンデレラではない。 2.真ん中の人より大きい人たちも   シンデレラではない。 × 一気に候補者が減った!! まず、真ん中の人を探す

  5. シンデレラを探せ! シンデレラが脱ぎ忘れていった ガラスの靴 この靴に合う足のサイズは、 二分探索で探してみよう。 真ん中の人と比べると、 < 真ん中の人が 小さいということは 1.当然、真ん中の人はシンデレラではない。 2.真ん中の人より小さい人たちも   シンデレラではない。 × × × 残った候補者から、真ん中の人を探す

  6. シンデレラを探せ! 真ん中の人と比べると、 シンデレラが脱ぎ忘れていった ガラスの靴 この靴に合う足のサイズは、 二分探索で探してみよう。 二分探索は、候補者を半分ずつ一気に減らすことができるので、高速な探索ができる。 ただし、並べ替えが行われているのことが前提。 この人が シンデレラ = × × × 残った候補者から、真ん中の人を探す

  7. 二分探索 入出力例 (例題)商品コードを入力し、そのコードに対応する商品名を出力するプログラムを作成せよ。 <処理条件> 1.商品コードを画面より入力し、ICOに保存する。 2.商品コードはテーブルCODEに、商品名はテーブルMEIにあらかじめ記憶されている。 3.テーブルは商品コードの昇順に並んでいる。 4.999が入力されたときに処理を終了する。 5.テーブルにない商品コードが入力された場合は画面に"エラー”と表示する。 025 055 030 エラー MEI 999(終了) CODE カメラ クリーナー

  8. 二分探索 SWは探索が終わったことを知らせる役割 印字 ループ2 ループ1 候補 候補 KAの右隣からJOの左隣までが候補 はじめ SW ループ2 SW = 1 0 1 (例題)商品コードを入力し、そのコードに対応する商品名を出力するプログラムを作成せよ。 ICO 下限と上限を足して2で割り、 真ん中を指定 (KA+JO)/2 →TYU <処理条件> 1.商品コードを画面より入力し、ICOに保存する。 2.商品コードはテーブルCODEに、商品名はテーブルMEIにあらかじめ記憶されている。 3.テーブルは商品コードの昇順に並んでいる。 4.999が入力されたときに処理を終了する。 5.テーブルにない商品コードが入力された場合は画面に"エラー”と表示する。 ループ1 ICO = 999 YES ICO=CODE(TYU) NO 0 → SW MEI(TYU) 下限の初期値はいつも0 YES ICO>CODE(TYU) NO 0 → KA 1 → SW 上限の初期値はテーブルの数+1 TYU→JO TYU→KA MEI 11 → JO YES NO “エラー” ICO 025 の場合 > = CODE < 1 → SW ↑ KA ↑ TYU ↑ JO ICO ↑ JO ↑ KA ↑ TYU おわり

  9. 二分探索 ループ1 ループ2 はじめ SW ループ2 SW = 1 0 1 (例題)商品コードを入力し、そのコードに対応する商品名を出力するプログラムを作成せよ。 ICO (KA+JO)/2 →TYU <処理条件> 1.商品コードを画面より入力し、ICOに保存する。 2.商品コードはテーブルCODEに、商品名はテーブルMEIにあらかじめ記憶されている。 3.テーブルは商品コードの昇順に並んでいる。 4.999が入力されたときに処理を終了する。 5.テーブルにない商品コードが入力された場合は画面に"エラー”と表示する。 ループ1 ICO = 999 YES ICO=CODE(TYU) NO 0 → SW MEI(TYU) YES ICO>CODE(TYU) NO 0 → KA 1 → SW TYU→JO TYU→KA MEI 11 → JO YES JO = KA+1 NO “エラー” エラー例 KAとJOが隣合うという意味。 候補が無くなるので、該当コードは存在しなかった。 ICO 030 の場合 > > < CODE < 1 → SW ↑ KA ↑ TYU ↑ JO 候補が 無くなった!! ICO おわり

  10. 二分探索 ループ1 ループ2 はじめ SW (例題)商品コードを入力し、そのコードに対応する商品名を出力するプログラムを作成せよ。 ループ2 SW = 1 ICO <処理条件> 1.商品コードを画面より入力し、ICOに保存する。 2.商品コードはテーブルCODEに、商品名はテーブルMEIにあらかじめ記憶されている。 3.テーブルは商品コードの昇順に並んでいる。 4.999が入力されたときに処理を終了する。 5.テーブルにない商品コードが入力された場合は画面に"エラー”と表示する。 ループ1 ICO = 999 YES ICO=CODE( ) NO 0 → SW YES ICO>CODE( ) MEI NO 1 → SW ICO YES の場合 CODE NO “エラー” 1 → SW ICO の場合 CODE ICO ↑ JO ↑ KA ↑ TYU おわり

More Related