走る作曲家のAIカフェ

「北海道大学大学院情報科学院修士課程入学試験」(令和6年8月実施)の情報理工学コース「アルゴリズムとデータ構造」対策ページです。

分野別対策

アルゴリズムとデータ構造

計算量、オーダー表記

参考にしたサイトは以下のとおり。

プログラムの計算量、オーダー表記 O( ) の求め方のまとめ _ 工業大学生ももやまのうさぎ塾.html

問題

アルゴリズムの優劣を考える際に用いる時間計算量および空間計算量 (領域計算量) の \(O\)(ラージオー) 記法による漸近的評価について説明し、そのような記法を用いる実用的意義について、例を用いて述べよ。

解答

時間計算量および空間計算量のO記法による漸近的評価

アルゴリズムの優劣を評価するために、主に時間計算量と空間計算量が用いられる。これらは、それぞれアルゴリズムが処理を行うのに要する時間と、必要とするメモリ領域の量を表す。O記法(ビッグオー記法)は、これらの計算量を漸近的に評価するために使用される。

時間計算量

時間計算量は、入力のサイズ \(n\) が大きくなるときに、アルゴリズムがどの程度の時間を要するかを評価する。例えば、アルゴリズムAの時間計算量が \(O(n^2)\) と評価される場合、入力サイズが2倍になると、処理時間は約4倍になることを意味する。この記法では、定数係数や低次の項は無視され、最も影響が大きい項のみが考慮される。

空間計算量

空間計算量(領域計算量)は、アルゴリズムが動作するために必要とするメモリの量を示す。同様に、O記法を用いて漸近的な評価を行うことで、大規模なデータに対してどの程度のメモリを必要とするかを判断できる。

実用的意義

O記法を用いることで、アルゴリズムのスケーラビリティを理解しやすくなる。例えば、ソートアルゴリズムの比較において、クイックソートの時間計算量が平均 \(O(n \log n)\) であるのに対し、バブルソートは \(O(n^2)\) である。この違いは、入力サイズが大きくなるときにクイックソートの方が圧倒的に効率的であることを示している。

O記法による評価は、アルゴリズムを選択する際の重要な基準となり、大規模な問題に対する適用可能性を判断するために不可欠である。例えば、検索アルゴリズムで、二分探索は \(O(\log n)\) で動作するため、線形探索の \(O(n)\) よりも遥かに効率的であることがわかる。このように、O記法は理論的な性能評価だけでなく、実際のプログラム設計においても非常に有用である。

最小全域木

参考にしたサイトは以下のとおり。

うさぎでもわかる離散数学(グラフ理論) 第13羽 最小全域木の求め方(クラスカル法・プリム法) _ 工業大学生ももやまのうさぎ塾.html

ダイクストラ法

参考にしたサイトは以下のとおり。

ダイクストラ法による単一始点最短経路を求めるアルゴリズム _ アルゴリズムロジック.html

幅優先探索(BFS)、深さ優先探索(DFS)

参考にしたサイトは以下のとおり。

うさぎでもわかる2分探索木 後編 2分探索木における4つの走査方法 _ 工業大学生ももやまのうさぎ塾.html

深さ優先探索と幅優先探索 _ 高校数学の美しい物語.html

幅優先探索 (BFS)

深さ優先探索 (DFS)

幅優先探索と深さ優先探索の比較

二分探索木

単純グラフ

ユークリッドの互除法

参考にしたサイトは以下のとおり。

アルゴリズムとデータ構造 - Tohoku University

ネットワークフロー問題

参考にしたサイトは以下のとおり。

うさぎでもわかる離散数学(グラフ理論) 第15羽 最大フロー・最小カットの求め方 _ 工業大学生ももやまのうさぎ塾.html

到達可能性行列

参考にしたサイトは以下のとおり。

ネットワーク分析-東京大学

ソート

参考にしたサイトは以下のとおり。

基本情報技術者 ソートのアルゴリズムとは? - Avinton Japan.html

動的計画法

参考にしたサイトは以下のとおり。

うさぎでもわかるアルゴリズム 動的計画法 _ 工業大学生ももやまのうさぎ塾.html

動的計画法 _ アルゴリズム入門.html

分割統治法

参考にしたサイトは以下のとおり。

分割統治法とは - 意味をわかりやすく - IT用語辞典 e-Words.html

うさぎでもわかるソーティング 応用ソート編 クイックソート・マージソート・シェルソート・ヒープソート _ 工業大学生ももやまのうさぎ塾.html

ハッシュ表

参考にしたサイトは以下のとおり。

【C言語】ハッシュ法(データ探索アルゴリズム)について分かりやすく解説 _ だえうホームページ.html