1.やさしい
ソート済み配列に対する二分探索(binary search)の時間計算量は何ですか?
- AO(n log n)
- BO(1)
- CO(log n)
- DO(n)
2.やさしい
隣接リストで格納されたグラフに対する深さ優先探索の時間計算量は何ですか?
- AO(V²)
- BO(E log V)
- CO(V × E)
- DO(V + E)
3.やさしい
ある問題が通常「扱いやすい(tractable)」と呼ばれるのはどのような場合ですか?
- Aあらゆる可能性を試すことでしか解けない場合
- B解がない場合
- C定数時間で解ける場合
- D多項式時間で解ける場合
4.ふつう
漸化式 T(n) = 2T(n/2) + O(1) の解は何ですか?
- AO(log n)
- BO(n log n)
- CO(n²)
- DO(n)
5.ふつう
ある関数は n 回反復するループを 1 つ実行し、その後別に n 回反復するループをもう 1 つ実行します。時間計算量は何ですか?
- AO(n)
- BO(log n)
- CO(2ⁿ)
- DO(n²)
6.ふつう
活動選択問題で、重ならない活動の数を常に最大にする貪欲な規則はどれですか?
- A最も早く終わる活動を選び、両立する活動で繰り返す
- B重なりの最も少ない活動を先に選び、両立する活動で繰り返す
- C最も早く始まる活動を選ぶ
- D最も短い活動から選ぶ
7.むずかしい
停止問題(halting problem)が示していることはどれですか?
- Aループは避けるべきである
- Bすべてのプログラムはいずれ停止する
- Cすべてのプログラムと入力について、それが停止するかどうかを判定できるアルゴリズムは存在しない
- D一部のプログラムは高速なコンピュータでより速く動作するので、停止するかどうかはハードウェアに依存するから
8.むずかしい
for i = 1 to n: for (j = i; j ≤ n; j = j + i) do O(1) work の時間計算量は何ですか?
- AO(n²)
- BO(n √n)
- CO(n)
- DO(n log n)
解答
- 1. C · O(log n)
- 2. D · O(V + E)
- 3. D · 多項式時間で解ける場合
- 4. D · O(n)
- 5. A · O(n)
- 6. A · 最も早く終わる活動を選び、両立する活動で繰り返す
- 7. C · すべてのプログラムと入力について、それが停止するかどうかを判定できるアルゴリズムは存在しない
- 8. D · O(n log n)
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。