1.やさしい
標準的な配列ベースのマージソートは、どれだけの追加メモリを使いますか?
- AO(log n)
- BO(n²)
- CO(1)
- DO(n)
2.やさしい
O(2ⁿ) の増加は何と呼ばれますか?
- A多項式的
- B指数的
- C線形
- D対数的
3.やさしい
再帰とは何ですか?
- A決して終わらないループ
- Bデータ構造の一種
- Cソートの手法の一つ
- Dより小さな入力に対して自分自身を呼び出す関数
4.ふつう
漸化式 T(n) = 2T(n/2) + O(n) の解はどれですか?
- AO(log n)
- BO(n)
- CO(n log n)
- DO(n²)
5.ふつう
満杯になると容量を2倍にする動的配列に要素を追加する操作の償却(amortised)時間計算量は何ですか?
- AO(n)
- BO(n²)
- CO(1)
- DO(log n)
6.ふつう
プリム法は最小全域木をどのように構築しますか?
- Aすべての辺を重みでソートし、森の中で閉路をつくる場合を除いて 1 本ずつ加える
- B開始頂点から 1 本の木を成長させ、木から出る最も安い辺を加える
- C幅優先探索を実行し、BFS 木を残す
- D閉路がなくなるまで最も高い辺を取り除く
7.むずかしい
ある NP 完全問題に対する多項式時間アルゴリズムを誰かが見つけたら、何が導かれますか?
- Aすべての指数時間アルゴリズムがただちに線形時間で動くようになる
- BNP のすべての問題が多項式時間で解けることになり、P = NP となる
- Cその 1 つの問題だけが P に移る
- D停止問題が決定可能になる
8.むずかしい
ハッシュテーブルの平均探索時間が O(1) なのに、最悪の場合は O(n) になるのはなぜですか?
- A配列のアクセスが O(n) だから
- Bハッシュ関数が遅いから
- C多くのキーが同じバケットで衝突(collision)する可能性があるから
- Dキーを先にソートする必要があるから
解答
- 1. D · O(n)
- 2. B · 指数的
- 3. D · より小さな入力に対して自分自身を呼び出す関数
- 4. C · O(n log n)
- 5. C · O(1)
- 6. B · 開始頂点から 1 本の木を成長させ、木から出る最も安い辺を加える
- 7. B · NP のすべての問題が多項式時間で解けることになり、P = NP となる
- 8. C · 多くのキーが同じバケットで衝突(collision)する可能性があるから
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。