データ構造とアルゴリズム論 第7章 探索のアルゴリズム

Slides:



Advertisements
Similar presentations
プログラミング 平成24年1月11日 森田 彦.
Advertisements

プログラミング 平成25年10月29日 森田 彦.
プログラミング 平成22年10月20日 森田 彦.
プログラミング 平成24年10月16日 森田 彦.
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
プログラミング 平成25年12月3日 森田 彦.
プログラミング 平成25年11月19日 森田 彦.
2分探索.
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
データ構造とアルゴリズム論 第5章 レコード構造を使った処理-クラスの利用
プログラミング 平成24年10月23日 森田 彦.
プログラミング 平成23年10月19日 森田 彦.
データ構造とアルゴリズム論 第4章 レコード構造を使った処理-クラスの利用
データ構造とアルゴリズム論 第9章 木構造 平成16年12月21日 森田 彦.
情報数理Ⅱ 平成27年9月30日 森田 彦.
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
データ構造とアルゴリズム論 第2章 配列(構造)を使った処理
プログラミング 平成25年12月10日 森田 彦.
ネットワークプログラミング論 平成28年12月12日 森田 彦.
プログラミング 平成24年10月30日 森田 彦.
プログラミング 平成23年10月5日 森田 彦.
データ構造とアルゴリズム論 第9章 木構造 平成17年12月20日 森田 彦.
データ構造とアルゴリズム論 第2回目テスト 平成15年12月9日 森田 彦.
データ構造とアルゴリズム論 第8章 再帰処理 平成15年12月2日 森田 彦.
ネットワークプログラミング論 平成28年11月21日 森田 彦.
プログラミング 平成25年11月5日 森田 彦.
データ構造と アルゴリズム論 平成29年9月27日 森田 彦.
ネットワークプログラミング論 平成28年12月26日 森田 彦.
CGプログラミング論 平成28年4月20日 森田 彦.
プログラミング 平成22年11月24日 森田 彦.
プログラミング 平成23年12月21日 森田 彦.
ネットワークプログラミング論 平成28年11月7日 森田 彦.
ネットワークプログラミング論 平成28年10月31日 森田 彦.
データ構造とアルゴリズム論 第4章 レコード構造を使った処理-クラスの利用
データ構造とアルゴリズム論 第3章 ファイルを用いたデータ入出力2
データ構造とアルゴリズム論 第3章 ファイルを用いたデータ入出力
データ構造とアルゴリズム論 終章 専門科目におけるプログラミング
データ構造とアルゴリズム論 第7章 再帰処理 平成17年12月6日 森田 彦.
データ構造とアルゴリズム論 第6章 整列(ソート)のアルゴリズム
データ構造とアルゴリズム論 第1章 アルゴリズムの表現-流れ図
プログラミングⅠ 平成30年10月29日 森田 彦.
ネットワークプログラミング論 平成28年12月19日 森田 彦.
データ構造とアルゴリズム論 第9章 木構造 平成29年12月20日 森田 彦.
データ構造とアルゴリズム論 第9章 木構造 平成30年6月27日 森田 彦.
データ構造とアルゴリズム論 第2回目テスト 平成16年12月14日 森田 彦.
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
データ構造とアルゴリズム論 第4章 レコード構造を使った処理-クラスの利用
プログラミング 4 探索と計算量.
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
プログラミングⅠ 平成30年10月22日 森田 彦.
プログラミングⅠ 平成31年1月7日 森田 彦.
プログラミング 平成22年12月15日 森田 彦.
データ構造とアルゴリズム論 第4章 レコード構造を使った処理-クラスの利用
データ構造とアルゴリズム (第5回) 静岡大学工学部 安藤和敏
基本情報技術概論(第10回) 埼玉大学 理工学研究科 堀山 貴史
プログラミング 平成24年11月13日 森田 彦.
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
基本情報技術概論(第5回) 埼玉大学 理工学研究科 堀山 貴史
データ構造とアルゴリズム論 第7章 再帰処理 平成16年11月30日 森田 彦.
CGプログラミング論 平成28年7月6日 森田 彦.
情報数理Ⅱ 平成28年9月21日 森田 彦.
データ構造とアルゴリズム論 第9章 連結リスト
CGプログラミング論 平成28年6月29日 森田 彦.
プログラミング 平成24年12月11日 森田 彦.
プログラミング 平成28年10月25日 森田 彦.
Q q 情報セキュリティ 第7回:2005年5月27日(金) q q.
プログラミング 平成28年10月18日 森田 彦.
プログラミング論 バイナリーサーチ 1.
Presentation transcript:

データ構造とアルゴリズム論 第7章 探索のアルゴリズム データ構造とアルゴリズム論 第7章 探索のアルゴリズム 平成15年11月25日 森田 彦

基礎課題提出状況(11/18) 平均提出数=30.4 (全課題数35) 約6割が31題以上を提出

応用課題提出状況(11/18) 平均提出課題数=8.1 13題以上提出は約22%

探索とは? あるデータ群から、目的のデータと合致するものを探し出す、という処理。→検索とも言う。  Webページの検索機能の強化→最近急速に発展 本章では、最も基本的な探索アルゴリズムを学習。

本章(本日)の学習のねらい 基本的な探索アルゴリズムを学習し、その処理の流れを理解する。 → 線形探索、2分探索 基本的な探索アルゴリズムを学習し、その処理の流れを理解する。              → 線形探索、2分探索 探索アルゴリズムの効率について考察する。 探索アルゴリズムを実際のプログラムに応用する。

7-1 線形探索 端から順番に探索する方法 3を発見! 例:カードの中から数字の3を探す。 5 1 3 7-1 線形探索 端から順番に探索する方法  例:カードの中から数字の3を探す。 5 1 3 3を発見! 流れ図で表すと・・・ → p.106参照

最大(2n+1)回の比較が必要 → 改良の余地は? → 番兵法へ <線形探索のアルゴリズム> 開始 A[1]~A[n]にデータ保管 Noの入力 探したい数字を入力 データの終端のチェック i ← 1 毎回必要? No i≦n Yes ’ありませんでした。’ Yes A[i] =No No i,’番目にありました。’ i ← i+1 終了 最大(2n+1)回の比較が必要 → 改良の余地は? → 番兵法へ

最大比較回数が減った! <番兵法のアルゴリズム> A[1]~A[n]にデータ保管 最後の1回だけ! 開始 Noの入力 i ← 1 データ終端を見分ける番兵の用意 A[n+1] ← No データの終端のチェック A[i] =No Yes 最後の1回だけ! No i≦n No i ← i+1 Yes ’ありませんでした。’ i,’番目にありました。’ 終了 最大比較回数が減った!

【基礎課題7-1】(p.108) データ数がn個の時の、最大比較回数は? 線形探索法では、(2n+1)回 番兵法では 回? n+2  線形探索法では、(2n+1)回  番兵法では    回?  n+2 流れ図の確認→【基礎課題7-2】、【基礎課題7-3】 線形探索の(練習)プログラム→【基礎課題7-4】

2分探索法 7-2 2分探索 線形探索では、データ数に比例して(データ照合のための)比較回数が増大。 データ数が10倍→計算時間も10倍 7-2 2分探索 線形探索では、データ数に比例して(データ照合のための)比較回数が増大。 データ数が10倍→計算時間も10倍   → 大きなデータ数では、効率が悪い! もっと効率の良い方法は? 2分探索法

例:数字「30」の書かれたカードを探す。 ※最初に昇順にソートしておく。 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] A[10] 1 3 7 12 13 14 20 22 30 41 ① 「30」と真ん中のA[5]を比較 ③ 「30」とA[9]を比較  ② 「30」と真ん中のA[8]を比較 1 3 7 12 13 14 20 30 41 22 1 3 7 12 13 14 20 30 41 22 1 3 7 12 13 14 20 22 30 41 1 3 7 12 13 14 20 22 30 41 13 22 「30」がA[9]にあることを発見!→ 終了! 探索範囲がA[9]~A[10]に絞られる。 探索範囲がA[6]~A[10]に絞られる。 データ数が2倍になっても比較回数は1回増えるだけ! → 【基礎課題7-5】で確認 プログラムは【基礎課題7-6】で作成  データ数が増えると効率が良い → P.118参照

7-4 応用課題 線形探索の応用→【応用課題7-A】 2分探索の応用→【応用課題7-B】 7-4 応用課題 線形探索の応用→【応用課題7-A】 2分探索の応用→【応用課題7-B】 【応用課題7-B】のプログラムを作成する事ができれば、本章の理解度はOKです。

第2回目テストのアナウンス 日時:12/9 13:15~14:15 (13:10までに着席しておいて下さい) 日時:12/9 13:15~14:15 (13:10までに着席しておいて下さい) 実施形態:ペーパーテスト形式(テスト中はPCを使用できません) 参照等:テキスト、プリント、自作ノート参照可 出題範囲:第5章~第8章(12/2学習)まで アドバイス:暗記ではなく、処理の流れを“理解する”事に重点を置いて下さい。