1.やさしい
次の実行時間のうち、多項式時間はどれですか?
- AO(2ⁿ)
- BO(n!)
- CO(n³)
- DO(nⁿ)
2.やさしい
隣接リストで格納されたグラフに対する深さ優先探索の時間計算量は何ですか?
- AO(V + E)
- BO(V × E)
- CO(V²)
- DO(E log V)
3.やさしい
順序が誤っている隣接要素を繰り返し交換するソートアルゴリズムはどれですか?
- Aバブルソート(Bubble sort)
- Bクイックソート(Quicksort)
- Cマージソート(Merge sort)
- Dヒープソート(Heap sort)
4.ふつう
漸化式 T(n) = T(n/2) + O(1) の解は何ですか?
- AO(n log n)
- BO(log n)
- CO(1)
- DO(n)
5.ふつう
辺の重みが非負のグラフで、一つの始点からの最短経路を求めるアルゴリズムはどれですか?
- Aどの場合でも Bellman–Ford が必要
- BKruskal 法
- CDijkstra 法
- D深さ優先探索(DFS)
6.ふつう
ボトムアップの表を使って n 番目のフィボナッチ数を計算する時間計算量は何ですか?
- AO(2ⁿ)
- BO(log n)
- CO(n)
- DO(n²)
7.むずかしい
最後の 2 つの値だけを保持するループで n 番目のフィボナッチ数を計算する時間と領域のコストは何ですか?
- A時間 O(n)、領域 O(n)
- B時間 O(log n)、領域 O(n)
- C時間 O(2ⁿ)、領域 O(1)
- D時間 O(n)、領域 O(1)
8.むずかしい
一部の辺の重みが負のとき、ダイクストラ法が誤った結果を出すことがあるのはなぜですか?
- A無向グラフでしか動作しないから
- B負の数は優先度付きキューに格納できないから
- C頂点は取り出された時点で確定するが、後の負の辺によってより短い経路が得られる可能性があるから
- D負の辺があるたびに無限ループに陥るから
解答
- 1. C · O(n³)
- 2. A · O(V + E)
- 3. A · バブルソート(Bubble sort)
- 4. B · O(log n)
- 5. C · Dijkstra 法
- 6. C · O(n)
- 7. D · 時間 O(n)、領域 O(1)
- 8. C · 頂点は取り出された時点で確定するが、後の負の辺によってより短い経路が得られる可能性があるから
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。