概要

ソフトウェアを書く上で基本となるデータ構造とアルゴリズムの考え方について学ぶ。線形構造, 木構造, グラフ構造, データ整列, データ探索について学習する。

学習・教育目標

線形構造, 木構造, グラフ構造, データ整列, データ探索に対する基本的なデータ構造とアルゴリズムを理解する。

授業計画

講義内容
第 1 週 データ構造とアルゴリズム
 データ構造とは,アルゴリズムとは,アルゴリズムの複雑さ,論理構造と物理構造
第 2 週 線形構造
 線形リスト,スタックと待ち行列
第 3 週 文字列照合
 単純照合法,KMP法,BM法
第 4 週 木構造
 木と二分木,表現(リンク配置),木の走査
第 5 週 グラフ構造(I)
 グラフの物理表現,縦型探索と横型探索
第 6 週 グラフ構造(II)
 強連結成分,最短路問題
第 7 週 ソーティング(I)
 ソーティングとは?,選択法(ヒープソート),挿入法(シェルソート)
第 8 週 ソーティング(II)
 交換法(クイックソート),応用
第 9 週 データ探索(I)
 表探索(二分探索,ハッシュ法),木構造探索(二分探索木法)
第 10 週 データ探索(II)
 木構造探索(B木,桁探索木法)

教材・参考書等

教科書「Cで学ぶデータ構造とアルゴリズム」西原清一(著) オーム社, 2008.

成績評価

学期末試験および講義時間中に行われる何回かの小テストの成績をもとにする。講義に出席することが成績評価の前提となるのできちんと出席すること。

授業外の学習

「データ構造とアルゴリズム」および「同実習」を学修するために必要な総時間は 135時間(45×3)である。授業時間が60時間(1.5×10×4)あるので、予習・復習・ 宿題やレポートに授業時間外でかける時間は少なくとも75時間は必要である。 グループでの時間外での議論などはもちろんこの75時間内に入れてよい。

予備知識・前提条件

基本的な計算機および簡単なプログラミング(C言語)の知識・スキルが必要である。

教員連絡先・オフィスアワー

教員一覧ページ を参照。