大学院-筆記試験練習:线性代数和数据结构(15)
- 1-前言
- 2-线性代数-题目
- 3-线性代数-参考答案
- 4-数据结构-题目
- 5-数据结构-参考答案
-
- 問1
-
- [(1) 隣接行列で実装したときの隣接判定の時間計算量](#(1) 隣接行列で実装したときの隣接判定の時間計算量)
- [(2) 隣接リストで実装したときの空間計算量](#(2) 隣接リストで実装したときの空間計算量)
- [(3) 図1のグラフで BFS(始点:1)の訪問順](#(3) 図1のグラフで BFS(始点:1)の訪問順)
-
- [BFS 手順](#BFS 手順)
- [(4) BFS 実行時のキュー Q の空間計算量](#(4) BFS 実行時のキュー Q の空間計算量)
- [(5) BFS を DFS に変更する場合のキュー処理の変更点](#(5) BFS を DFS に変更する場合のキュー処理の変更点)
- 問2(ソートアルゴリズム)
- 6-总结
1-前言
为了升到自己目标的大学院,所作的努力和学习,这里是线性代数和数据结构部分。

2-线性代数-题目

3-线性代数-参考答案




4-数据结构-题目

5-数据结构-参考答案
問1
(1) 隣接行列で実装したときの隣接判定の時間計算量
隣接行列では,2頂点 (u, v) が隣接しているかは行列要素を 1回参照すれば判定できる。
答 :
O(1)
(2) 隣接リストで実装したときの空間計算量
隣接リストでは
- 頂点数:(|V| = n)
- 辺数:(|E| = m)
各頂点リスト+全辺を保持する。
答 :
O(n + m)
(3) 図1のグラフで BFS(始点:1)の訪問順
図1の有向辺(読み取り):
- 1 → 2, 4
- 2 → 6
- 4 → 3, 6
- 3 → 1, 5
- 5 → 4
※「隣接頂点が複数あるときは 頂点番号の昇順」
BFS 手順
- 開始:1
- 1 → {2,4}
- 2 → {6}
- 4 → {3}
- 6 → なし
- 3 → {5}
- 5 → なし
答(訪問順) :
1 \\rightarrow 2 \\rightarrow 4 \\rightarrow 6 \\rightarrow 3 \\rightarrow 5
(4) BFS 実行時のキュー Q の空間計算量
最悪の場合,キューには 全頂点が入る。
答 :
O(n)
(5) BFS を DFS に変更する場合のキュー処理の変更点
DFS では FIFO キューを使わず,LIFO 構造を用いる。
答 :
キューを スタック(LIFO) に変更する
(ENQUEUE/DEQUEUE を PUSH/POP に変更)
問2(ソートアルゴリズム)
文章の流れに対応させて解答します。
| 空欄 | 解答 |
|---|---|
| (1) | 計数ソート |
| (2) | 最小値 |
| (3) | (n^2) |
| (4) | 比較 |
| (5) | (n \log n) |
| (6) | (n \log n) |
| (7) | ピボット |
| (8) | (n \log n) |
| (9) | (n^2) |
| (10) | 安定 |
完成文(確認用・要点)
- 数の範囲が分かる場合は 計数ソート により (O(n))
- 選択ソート:最小値を選択,平均・最悪ともに (O(n^2))
- マージソート:分割と比較による統合,平均・最悪ともに (O(n\log n))
- クイックソート:ピボットで分割,平均 (O(n\log n)),最悪 (O(n^2))
- マージソートは 安定ソート
6-总结
训练成长。!!