1.やさしい
0 から k の範囲の n 個の整数に対する計数ソート(counting sort)の実行時間は何ですか?
- AO(k log n)
- BO(n + k)
- CO(n²)
- DO(n log n)
2.やさしい
マージソートの最悪時間計算量は何ですか?
- AO(n log n)
- BO(n²)
- CO(log n)
- DO(n)
3.やさしい
標準的な配列ベースのマージソートは、どれだけの追加メモリを使いますか?
- AO(1)
- BO(n)
- CO(n²)
- DO(log n)
4.ふつう
漸化式 T(n) = 2T(n/2) + O(n) の解はどれですか?
- AO(n²)
- BO(n)
- CO(n log n)
- DO(log n)
5.ふつう
活動選択問題で、重ならない活動の数を常に最大にする貪欲な規則はどれですか?
- A重なりの最も少ない活動を先に選び、両立する活動で繰り返す
- B最も早く始まる活動を選ぶ
- C最も短い活動から選ぶ
- D最も早く終わる活動を選び、両立する活動で繰り返す
6.ふつう
漸化式 T(n) = 2T(n − 1) + O(1) の解は何ですか?
- AO(n)
- BO(2ⁿ)
- CO(n log n)
- DO(n²)
7.むずかしい
V 個の頂点と E 本の辺をもつグラフで、二分ヒープを用いたダイクストラ法の実行時間は何ですか?
- AO(V + E)
- BO((V + E) log V)
- CO(V³)
- DO(V × E)
8.むずかしい
停止問題(halting problem)が示していることはどれですか?
- Aすべてのプログラムと入力について、それが停止するかどうかを判定できるアルゴリズムは存在しない
- B一部のプログラムは高速なコンピュータでより速く動作するので、停止するかどうかはハードウェアに依存するから
- Cループは避けるべきである
- Dすべてのプログラムはいずれ停止する
解答
- 1. B · O(n + k)
- 2. A · O(n log n)
- 3. B · O(n)
- 4. C · O(n log n)
- 5. D · 最も早く終わる活動を選び、両立する活動で繰り返す
- 6. B · O(2ⁿ)
- 7. B · O((V + E) log V)
- 8. A · すべてのプログラムと入力について、それが停止するかどうかを判定できるアルゴリズムは存在しない
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。