データ構造とアルゴリズム 平成20年度 前期 2年生必修  水曜日 3-4時限.

Slides:



Advertisements
Similar presentations
専門教科「情報」(2) 6/1/07. 各科目(続き) 課題研究 課題研究(1) 目標 情報に関する課題を設定し,その課題の解決 を図る学習を通して,専門的な知識と技術の 深化,総合化を図るとともに,問題解決の能 力や自発的,創造的な学習態度を育てる.
Advertisements

プログラミング言語論 第10回(演習) 情報工学科 木村昌臣   篠埜 功.
【事例演習5】  字句解析     解 説  “ハッシュを用いた字句解析の方法”.
アルゴリズムとデータ構造 第2回 線形リスト(復習).
基本情報技術概論 I 演習(第5回) 埼玉大学 理工学研究科 堀山 貴史
データ構造とアルゴリズム 平成20年度 前期 2年生必修  水曜日 3-4時限.
Generic programming と STL
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
離散システム特論 整列(sorting)アルゴリズム 2.
ヒープソートの演習 第13回.
第10回 整列 ~ バブルソート,挿入ソート,選択ソート~
第11回 整列 ~ シェルソート,クイックソート ~
第11回 整列 ~ バケットソート,基数ソート,ヒープソート~
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
ファーストイヤー・セミナーⅡ 第8回 データの入力.
基本情報技術概論(第4回) 埼玉大学 理工学研究科 堀山 貴史
2章 データ構造.
データ構造と アルゴリズム 理工学部 情報システム工学科 新田直也.
最終回 総合演習 第13回目 [7月17日、H.15(‘03)] 本日のメニュー 1)総合演習課題 2)過去の試験問題 3)試験について
第10回 ソート(1):単純なソートアルゴリズム
IT入門B2 (木曜日1限) 第一回 講義概要 2004年月9日30日.
情報工学概論 (アルゴリズムとデータ構造)
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
情報数理Ⅱ 平成27年9月30日 森田 彦.
情報科学1(G1) 2016年度.
データ構造とアルゴリズム 分割統治 ~ マージソート~.
データ構造と アルゴリズム 知能情報学部 新田直也.
岩井 儀雄 コンピュータ基礎演習  ー探索、整列ー 岩井 儀雄
情報基礎A 第11週 プログラミング入門 VBAの基本文法3 配列・For~Next
①データ構造 ②アルゴリズム ③プログラム言語 ④マークアップ言語
データ構造とアルゴリズム論 第2章 配列(構造)を使った処理
朝日大学大学院 経営学研究科 奥山 徹 データベース論 朝日大学大学院 経営学研究科 奥山 徹 2006/05/29 データベース論(7回目)
アルゴリズム入門.
第11回 整列 ~ シェルソート,クイックソート ~
第3回 配列,構造体,ポインタ ~ データ構造について学ぶための基礎~
データ構造とアルゴリズム論 第9章 木構造 平成17年12月20日 森田 彦.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
【プログラミング応用】 必修2単位 通年 30週 授業形態:演習.
2009/10/16 いろいろなデータ構造 第3講: 平成21年10月16日 (金) 4限 E252教室 コンピュータアルゴリズム.
Cプログラミング演習 中間まとめ2.
データ構造とアルゴリズム 第14回 文字列の照合.
データ構造とアルゴリズム 担当:和田俊和 居室:A603 講義資料等は下記を参照してください.
第9回 優先度つき待ち行列,ヒープ,二分探索木
電子計算機工学 Keiichi MIYAJIMA Computer Architecture
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
データ構造とアルゴリズム論 第9章 木構造 平成29年12月20日 森田 彦.
データ構造とアルゴリズム論 第9章 木構造 平成30年6月27日 森田 彦.
2009/10/23 整列アルゴリズム (1) 第4講: 平成21年10月23日 (金) 4限 E252教室 コンピュータアルゴリズム.
情報処理Ⅱ 第2回:2003年10月14日(火).
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
明星大学 情報学科 2012年度 後期   情報技術Ⅱ   第8回
スタックとキュー データ構造とプログラミング (第5回).
明星大学 情報学科 2012年度前期     情報技術Ⅰ   第1回
情報数理Ⅱ 第11章 データ構造 平成29年1月18日.
データ構造とアルゴリズム (第5回) 静岡大学工学部 安藤和敏
第9回 優先度つき待ち行列,ヒープ,二分探索木
情報基礎Ⅱ (第1回) 月曜4限 担当:北川 晃.
ガイダンス 電子計算機 電気工学科 山本昌志 1E
第14回 前半:ラムダ計算(演習付) 後半:小テスト
アルゴリズムとプログラミング (Algorithms and Programming)
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
情報数理Ⅱ 平成28年9月21日 森田 彦.
Q q 情報セキュリティ 第8回:2004年5月28日(金) の補足 q q.
参考:大きい要素の処理.
データ構造とアルゴリズム 第14回 文字列の照合.
情報処理Ⅱ 第2回 2004年10月12日(火).
明星大学 情報学科 2014年度前期     情報技術Ⅰ   第1回
Q q 情報セキュリティ 第7回:2005年5月27日(金) q q.
プログラミング基礎a 第5回 C言語によるプログラミング入門 配列と文字列
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
Presentation transcript:

データ構造とアルゴリズム 平成20年度 前期 2年生必修  水曜日 3-4時限

授業の目標 代表的なデータの構造(配列、線形リスト、スタック、キュー、木)、および、データの操作の基本である、並べ替え、検索等のアルゴリズムを学ぶことで、良いプログラムを書くための基礎を養う 教科書:茨木俊秀,“Cによるアルゴリズムとデータ構造,”       昭晃堂,ISBN:4785631171. 生協にて販売 参考書:近藤嘉雪,“定本Cプログラマのためのアルゴリズムとデータ構造,”    ソフトバンク,ISBN:4797304952.

成績評価 2/3回(10回)以上の出席を満たさない場合は期末試験を受験できない(学内履修規定) レポート(30%)および期末試験(70%)を総合評価 レポートと試験の合計得点を100点満点に換算 優:80点以上 良:70点以上~80点未満 可:60点以上~70点未満

授業予定 第1週 4/16 導入:データの型、データ構造 第2週 4/23 抽象データ型、計算量、ポインタと配列 第3週 5/07 リスト:配列による実現とポインタによる実現 第4週 5/14 スタックとキュー:スタックの実現、再帰、キューの実現 第5週 5/21 木構造:木と2分木、木のなぞり、木の実現 第6週 5/28 集合と辞書:集合の用語と操作、辞書とハッシュ表 第7週 6/04 順序つき集合の処理:優先度つき待ち行列、ヒープ、探索木:2分探索木 第8週 6/11 整列(1):バブルソート、挿入ソート、選択ソート 第9週 6/25 整列(2):バケットソート、基数ソート、ヒープソート 第10週 7/02 整列(3):クイックソート、シェルソート 第11週 7/09 整列データの処理:整列配列の併合、2分探索 第12週 7/16 演習(ヒープソート) 第13週 7/23 分割統治法、演習(マージソート) 第14週 7/30 学期末試験

講義範囲 第1章 アルゴリズムとその計算量 (ほぼ全部) 第2章 基本的なデータ構造 (ほぼ全部) 第3章 順序つき集合の処理 (ほぼ全部) 第1章 アルゴリズムとその計算量  (ほぼ全部) 第2章 基本的なデータ構造      (ほぼ全部) 第3章 順序つき集合の処理      (ほぼ全部) 第4章 整列のアルゴリズム     (4.6節を除く) 第5章 アルゴリズムの設計     (5.1、5.2節)

参考)IT関連の資格 出典: 情報処理技術者試験センター 試験の概要 出典: 情報処理技術者試験センター  試験の概要 http://www.jitec.jp/1_08gaiyou/_index_gaiyou.html

参考)基本情報技術者試験 出題分野 コンピュータ科学基礎 コンピュータシステム システムの開発と運用 ネットワーク技術 データベース技術 1 情報の基礎理論 1-1 数値表現・データ表現に関すること(基数変換,数値表現,文字表現,数値計算(演算方式と精度,近似解法と方程式ほか),確率と統計,最適化問題 など) 1-2 情報と理論に関すること(論理演算,符号理論,述語論理,状態遷移,計算量,情報量,BNF,ポーランド表記法,集合 など) 2 データ構造とアルゴリズム 2-1 データ構造に関すること(2 分木,リスト,スタック,キュー など) 2-2 アルゴリズムに関すること(整列,探索,再帰,グラフ,文字列処理,流れ図 など) コンピュータシステム システムの開発と運用 ネットワーク技術 データベース技術 セキュリティと標準化 情報化と経営

オフィスアワーと連絡先 質問は、水12:00-12:50 に受付ける 居室:情報棟4階 9-409 質問は、水12:00-12:50 に受付ける 居室:情報棟4階 9-409  連絡先:miyoshi@is.utsunomiya-u.ac.jp 事前にメールで予約すること メールのマナーを守る 学籍番号、氏名を明記 返信が受信できるようにする

データ構造とアルゴリズム 第1回  データの型、データ構造

「プログラミング」 問題を分析し,何をするプログラムを書くか決定する.プログラムの仕様を決める. どのようなアルゴリズム,データ構造を使用すればよいかを決定する. プログラミング言語を用いてプログラムを書く. 設計したとおりにプログラムが動作するかテストする. (マニュアルの作成やプログラムの性能評価を行う.)

例:身長順の名簿が作りたい 50音順に並んでいるデータを身長順に並べ替えるプログラムを作ろう 入力:50音順の名簿(5名分) 出力:身長順の名簿 青木 177 小田 158 金子 167 佐藤 174 渡辺 170 青木 177 佐藤 174 渡辺 170 金子 167 小田 158

1名分のデータをまとめて管理できると便利だな 例:身長順の名簿が作りたい プログラム内でデータをどう表すか?    ⇒データ型,データ構造の決定 名前は文字列で表現しよう 身長は整数型?実数型? 1名分のデータをまとめて管理できると便利だな 青木 177 小田 158 金子 167 佐藤 174 渡辺 170 5名分のデータの集合をどう表わそう?

例:身長順の名簿が作りたい どういう手順で処理し,欲しい結果を求めるか? ⇒アルゴリズムの決定 青木 177 小田 158 金子 167    ⇒アルゴリズムの決定 アルゴリズムAは, メモリをあまり使わないが,処理が遅い 青木 177 小田 158 金子 167 佐藤 174 渡辺 170 アルゴリズムBは, メモリを大量に使用するが, 処理が高速 このデータを処理するには どの方法が適している?

アルゴリズム(algorithm)とは? 与えられた問題を解くための、機械的操作(命令)からなる有限の手続き. どのような値が入力されたときでも,有限個の命令を実行後,必ず停止する.  (無限ループに入らない.)

アルゴリズムと手続き ※ [ ] [ ] コンピュータにかけて実行できるように手続きを詳細にしたもの ⇒ プログラム(program) アルゴリズムと手続き  ※ [       ] 操作の系列を並べたもの 有限ステップで停止するとは限らない コンピュータにかけて実行できるように手続きを詳細にしたもの ⇒ プログラム(program) [       ] 必ず有限ステップで停止する

アルゴリズムと手続き ※ 手続き(procedure) コンピュータにかけて実行できるように手続きを詳細にしたもの アルゴリズムと手続き  ※ 手続き(procedure) 操作の系列を並べたもの 有限ステップで停止するとは限らない コンピュータにかけて実行できるように手続きを詳細にしたもの ⇒ プログラム(program) アルゴリズム 必ず有限ステップで停止する

問題(problem) すべてのアルゴリズムは、ある問題を解くという目的で書かれる 「ある正整数mが3の倍数であるかどうかを求める」 出力: 3の倍数かどうかの判定メッセージ 1つの問題は無数の問題例(problem instances)から成る。   例えば上記は、mを指定することによって定まる無数の問題例の集合である。

与えられた整数m(ただしm≧0)が3の倍数か否か。 計算手順 Step A1:もしm=0ならば Step A4 へ。 Step A2:mから3を減ずる。 Step A3:Step A1 へ。 Step A4:「mは3の倍数である」と出力する。 Step A5:計算を停止する。 mが3の倍数でないとき, この手順では処理が停止しない.

与えられた整数m(ただしm≧0)が3の倍数か否か。 アルゴリズム (algorithm) Step B1:もしm=0ならば Step B4 へ。       また,m<0ならば Step B6 へ。 Step B2:mから3を減ずる。 Step B3:Step B1 へ。 Step B4:「mは3の倍数である」と出力する。 Step B5:計算を停止する。 Step B6:「mは3の倍数ではない」と出力する。 Step B7:計算を停止する。

データ構造とは? データ構造(data structure) 基本的なデータ構造 データ構造とは?   データ構造(data structure) データをコンピュータで効率的に扱うため,データを組織化して格納する際の形式 各種の型を持った変数を,様々な方法で結びつけたもの 基本的なデータ構造 リスト(list) スタック(stack) キュー(queue) 木(tree) etc. リスト 青木 177 小田 158 金子 167 佐藤 174 渡辺 170

スタック(STACK) 後入れ先出しリスト In, Out a 4 a 3 a 2 a 1

待ち行列(QUEUE) 先入れ先出しリスト Out a 1 a 2 a 3 a 4 a 5 In

本日の問題 問題1. スタックの身近な例を1つ挙げて説明せよ。 問題2. 待ち行列の身近な例を1つ挙げて説明せよ。 問題1. スタックの身近な例を1つ挙げて説明せよ。 問題2. 待ち行列の身近な例を1つ挙げて説明せよ。 問題3. 構造を持つデータ群(データ構造)の身近な例を       1つ挙げて説明せよ。