基本情報技術概論 I 演習(第5回) 埼玉大学 理工学研究科 堀山 貴史

Slides:



Advertisements
Similar presentations
プログラミング言語論 第3回 BNF 記法について(演習付き) 篠埜 功. 構文の記述 プログラミング言語の構文はどのように定式化できるか? 例1 : for ループの中に for ループが書ける。 for (i=0; i
Advertisements

1 データベース 基本情報技術概論 ( 第 11 回 ) 埼玉大学 理工学研究科 堀山 貴史 DB.
データ構造とプログラミング技 法 (第3回) ー木構造ー. 木構造 (1) 根( root )と呼ばれる節 R が、 1 つだけ含まれ る。 R … TmTm T1T1 木構造: 1 個以上の節の有限集合 T であり、 次の二つの条件を満足するもの (2) 根以外の節は、 m (≧ 0 )個の互いに素な部.
1 プログラム言語 と 言語プロセッ サ 基本情報技術概論 II ( 第1回 ) 埼玉大学 理工学研究科 堀山 貴史.
1 マネジメント・ストラテジ 最適化 / グラフと図解による分 析 基本情報技術概論 II ( 第6回 ) 埼玉大学 理工学研究科 堀山 貴史 中間試験 12/7 ( 月 ) 1,2 限 工 -11.
プログラミング言語論 第10回(演習) 情報工学科 木村昌臣   篠埜 功.
基本情報技術概論(第2回) 埼玉大学 理工学研究科 堀山 貴史
【事例演習5】  字句解析     解 説  “ハッシュを用いた字句解析の方法”.
データ構造とアルゴリズム 平成20年度 前期 2年生必修  水曜日 3-4時限.
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
基本情報技術概論(第10回) 埼玉大学 理工学研究科 堀山 貴史
基本情報技術概論(第12回) 埼玉大学 理工学研究科 堀山 貴史
基本情報技術概論(第9回) 埼玉大学 理工学研究科 堀山 貴史
コンパイラ 2011年10月17日
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
基本情報技術概論(第4回) 埼玉大学 理工学研究科 堀山 貴史
データ構造とアルゴリズム 第7回 木 ~ データ構造(3)~.
プログラミング言語論 第4回 式の構文、式の評価
情報科学1(G1) 2016年度.
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
エージェントを管理するボスの苦悩 問題 n人のエージェントを部下に持つボスがいる. エージェントは出張・帰還を頻繁に繰り返す.
①データ構造 ②アルゴリズム ③プログラム言語 ④マークアップ言語
コンパイラ 2012年10月15日
基本情報技術概論(第8回) 埼玉大学 理工学研究科 堀山 貴史
基本情報技術概論(第3回) 埼玉大学 理工学研究科 堀山 貴史
データ構造と アルゴリズム 第十一回 理工学部 情報システム工学科 新田直也.
シミュレーション演習 G. 総合演習 (Mathematica演習) システム創成情報工学科
二分探索木によるサーチ.
7-3.高度な木 (平衡木) AVL木 平衡2分木。回転操作に基づくバランス回復機構により平衡を保つ。 B木
情報工学総合演習 D-I 近似アルゴリズム 埼玉大学 理工学研究科 山田 敏規、 橋口 博樹、 堀山 貴史
2009/10/16 いろいろなデータ構造 第3講: 平成21年10月16日 (金) 4限 E252教室 コンピュータアルゴリズム.
Cプログラミング演習 中間まとめ2.
アルゴリズムとデータ構造 2012年6月28日
アルゴリズムとデータ構造 2011年6月27日
アルゴリズムとデータ構造1 2005年7月26日
データ構造とアルゴリズム (第3回) ー木構造ー.
第9回 優先度つき待ち行列,ヒープ,二分探索木
データ構造と アルゴリズム 第七回 知能情報学部 新田直也.
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
Cプログラミング演習 第10回 二分探索木.
データ構造とアルゴリズム論 第9章 木構造 平成29年12月20日 森田 彦.
データ構造とアルゴリズム論 第9章 木構造 平成30年6月27日 森田 彦.
復習+α JBuilderの使い方を思い出す。 配列とGUI 再帰とマージソート 木と二分木の探索
アルゴリズムとデータ構造 2010年7月26日
プログラミング 4 木構造とヒープ.
明星大学 情報学科 2012年度 後期   情報技術Ⅱ   第8回
プログラミング言語論 第9回 情報工学科 木村昌臣 篠埜 功.
コンパイラ 2011年10月20日
基本情報技術概論I (第4回) 埼玉大学 理工学研究科 堀山 貴史
15.cons と種々のデータ構造.
基本情報技術概論(第2回) 埼玉大学 理工学研究科 堀山 貴史
基本情報技術概論(第2回) 埼玉大学 理工学研究科 堀山 貴史
アルゴリズムとデータ構造 第3章 ヒープ 5月31日分
アルゴリズムとデータ構造 第3章 ヒープ 5月31日分の復習
情報数理Ⅱ 第11章 データ構造 平成29年1月18日.
データ構造とアルゴリズム (第5回) 静岡大学工学部 安藤和敏
基本情報技術概論(第10回) 埼玉大学 理工学研究科 堀山 貴史
第9回 優先度つき待ち行列,ヒープ,二分探索木
基本情報技術概論(第13回) 埼玉大学 理工学研究科 堀山 貴史
基本情報技術概論(第5回) 埼玉大学 理工学研究科 堀山 貴史
アルゴリズムとデータ構造1 2008年7月24日
アルゴリズムとデータ構造 2011年6月16日
アルゴリズムとデータ構造 2013年7月1日
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
基本情報技術概論(第5回) 埼玉大学 理工学研究科 堀山 貴史
情報工学概論 (アルゴリズムとデータ構造)
第11回放送授業.
アルゴリズムとデータ構造 2013年6月20日
新人研修発表 平成13年5月14日(月) 探索アルゴリズム ハッシュ法について 株式会社 エーアイネット・テクノロジ          須田 哲生.
プログラミング基礎a 第5回 C言語によるプログラミング入門 配列と文字列
Presentation transcript:

基本情報技術概論 I 演習(第5回) 埼玉大学 理工学研究科 堀山 貴史 2011/5/19 基本情報技術概論 I 演習 (第5回) アルゴリズム と データ構造 埼玉大学 理工学研究科 堀山 貴史 2008/01/23

木 (tree)、2分木 (binary tree) 前回までの復習: データ構造 基本的なデータ構造 配列 (array) リスト (list) その他のデータ構造 スタック (stack) 待ち行列 (queue, キュー) 木 (tree)、2分木 (binary tree) 2分探索木、ヒープ

2分木の走査

2分木の走査順序 先行順 / 前順 (pre order) 根、左部分木、右部分木 中間順 / 間順 (in order) ___________ 先行順 / 前順 (pre order) 根、左部分木、右部分木 中間順 / 間順 (in order) 左部分木、根、右部分木 後行順 / 後順 (post order) 左部分木、右部分木、根 左部分木 右部分木

2分木の走査順序 中間順 : 左部分木、根、右部分木 4 × + - A B C D 2 6 (A+B)×(C-D) に対応 1 3 5 7

2分木の走査順序 先行順 : 根、左部分木、右部分木 × + - A D B C 後行順 : 左部分木、右部分木、根 × + - A B C 先行順 : 根、左部分木、右部分木 × + - A D B C ___________ ×+AB-CD に対応 (ポーランド記法) 後行順 : 左部分木、右部分木、根 × + - A B C D ___________ AB+CD-× に対応 (逆ポーランド記法)

2分木の走査順序 先行順 : 根、左部分木、右部分木 × + - A D B C 後行順 : 左部分木、右部分木、根 × + - A B C 先行順 : 根、左部分木、右部分木 1 × + - A D B C 2 5 ___________ ×+AB-CD に対応 (ポーランド記法) 3 4 6 7 後行順 : 左部分木、右部分木、根 7 × + - A B C D 3 6 ___________ AB+CD-× に対応 (逆ポーランド記法) 1 2 4 5

再帰アルゴリズム 自分自身と同じものを呼び出して 処理を繰り返す手続き 例) n の階乗: n ! = n x ( n – 1 ) ! 自分自身と同じものを呼び出して 処理を繰り返す手続き 例) n の階乗: n ! = n x ( n – 1 ) ! 1 (n = 0 の場合) n x F( n – 1 ) (n ≧ 1 の場合) F( 4 ) = 4 x F( 3 ) = 4 x 3 x F( 2 ) = 4 x 3 x 2 x F( 1 ) = 4 x 3 x 2 x 1 x F( 0 ) = 4 x 3 x 2 x 1 F( n ) =

再帰アルゴリズム * d b c - a + (H19年度 秋 一部改変) 2分木の各ノードがもつ記号を出力する再帰的なプログラム Proc ( ノード n ) は、次のように定義される。このプログラムを、図の2分木の根 (最上位のノード) に適用したときの出力を答えなさい。 Proc ( ノード n ) { n に左の子 ℓ があれば Proc ( ℓ ) を呼び出す n に右の子 r があれば Proc ( r ) を呼び出す n に書かれた記号を出力する } * d b c - a +

構文解析

逆ポーランド記法 と スタック ( 3 + 7 ) × ( 6 - 1 ) 逆ポーランド記法では、 3 7 + 6 1 - ×      3 7 + 6 1 - × ___________ 10 6 1 3 7 10 6 3 10 10 5 50

BNF 表記法 (プログラミング) 言語の構文規則を記述するのに利用 <式> ::= <数> | <式> + <式> | <式> - <式> | <式> × <式> | <式> / <式> | ( <式> ) <数> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 例) 再帰的な定義 ( 3 + 7 ) × ( 6 - 1 ) <数> <式> + <数> <式> - × <式>

BNF 表記法 例) 数値の定義 <数字> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 例) 数値の定義 <数字> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 <数字列> ::= <数字> | <数字列> <数字> <符号> ::= + | - <数値> ::= <数字列> | <数字列> E <数字列> | <数字列> E <符号> <数字列> 例題: どれが <数値> ? -12 12E-10 +12E-10 +12E10

ハッシュ

ハッシュ法 (hash) キー値に対して演算を行うことで、 アイデア) キー値が大きな数字で、要素数が少ない ハッシュ表 キー値に対して演算を行うことで、 高速なアクセスを実現する アイデア) キー値が大きな数字で、要素数が少ない → キー値を折りたたんで、配列に 例) 名前をキーにした名簿、 プログラミング言語の連想配列 … 13 14 ハッシュ関数 ハッシュ値 15 キー 16 mod 23 1234 mod 23 1234 = 15 …

衝突 異なるキーのハッシュ値が 同じになること ハッシュ表が混んでいなくて、 → O( 1 ) 時間でアクセス可能 ハッシュ表 … 13 ハッシュ関数が適切なら、衝突の確率は低い → O( 1 ) 時間でアクセス可能 … 13 14 ハッシュ関数 ハッシュ値 15 キー 16 mod 23 1234 mod 23 1234 シノニム = 15 … mod 23 15 15

衝突時の処理 チェーン法 リンクをたどる オープンアドレス法 次のアドレスに移る (次でも衝突すれば、 さらにその次に移る) ハッシュ表 衝突時の処理 … 13 チェーン法 リンクをたどる オープンアドレス法 次のアドレスに移る (次でも衝突すれば、 さらにその次に移る) 次のアドレス計算 現アドレス + 1 次のハッシュ関数 14 15 16 … … 13 14 15 16 …

この文面は、TOKYO TECH OCW の利用 条件を参考にしました この教材のご利用について この教材は、以下に示す利用条件の下で、著作権者にわざわざ許諾を求めることなく、無償で自由にご利用いただけます。講義、自主学習はもちろん、翻訳、改変、再配布等を含めて自由にご利用ください。 非商業利用に限定 この教材は、翻訳や改変等を加えたものも含めて、著作権者の許諾を受けずに商業目的で利用することは、許可されていません。 著作権の帰属 この教材および教材中の図の著作権は、次ページ以降に示す著作者に帰属します。この教材、または翻訳や改変等を加えたものを公開される場合には、「本教材 (or 本資料) は http://www.al.ics. saitama-u.ac.jp/horiyama/OCW/ の教材です (or 教材を改変したものです」 との旨の著作権表示を明確に実施してください。なお、この教材に改変等を加えたものの著作権は、次ページ以降に示す著作者および改変等を加えた方に帰属します。 同一条件での頒布・再頒布 この教材、または翻訳や改変等を加えたものを頒布・再頒布する場合には、頒布・再頒布の形態を問わず、このページの利用条件に準拠して無償で自由に利用できるようにしてください。

この教材のご利用について 配布場所 http://www.al.ics.saitama-u.ac.jp/horiyama/OCW/ この powerpoint ファイルの著作者 堀山 貴史 2007-2011 horiyama@al.ics.saitama-u.ac.jp 改変等を加えられた場合は、お名前等を追加してください 図の著作者 p. 4 ~17 堀山 貴史