1.やさしい
ある O(n²) アルゴリズムは n = 1000 で 1 秒かかります。n = 2000 ではおよそ何秒かかりますか?
- A2 秒
- B4 秒
- C1 秒
- D8 秒
2.やさしい
それぞれ n 回実行される二重の入れ子ループを持つアルゴリズムの計算量は、通常どれですか?
- AO(log n)
- BO(2n)
- CO(n²)
- DO(n)
3.やさしい
n 個の要素を持つ未ソートの配列に対する線形探索(linear search)の時間計算量(最悪の場合)は何ですか?
- AO(1)
- BO(n)
- CO(log n)
- DO(n²)
4.ふつう
問題が最適部分構造をもつとはどういう意味ですか?
- A問題の最適解がちょうど 1 つで、すべての部分問題がそれを共有しているから
- B問題を定数時間で解ける
- C最適解を部分問題の最適解から構成できる
- Dすべての部分問題が同じサイズである
5.ふつう
k 進数で d 桁の n 個の整数に対する LSD 基数ソートの実行時間は何ですか?
- AO(dn log k)
- BO(n²)
- CO(d(n + k))
- DO(n log n)
6.ふつう
プリム法は最小全域木をどのように構築しますか?
- A閉路がなくなるまで最も高い辺を取り除く
- B開始頂点から 1 本の木を成長させ、木から出る最も安い辺を加える
- Cすべての辺を重みでソートし、森の中で閉路をつくる場合を除いて 1 本ずつ加える
- D幅優先探索を実行し、BFS 木を残す
7.むずかしい
最短単純路は多項式時間で見つけられます。一般のグラフで 2 頂点間の最長単純路を見つけることについて、何が知られていますか?
- ANP 困難である
- B常に O(V + E) で解ける
- C重みの符号を反転すればダイクストラ法で解ける
- D決定不能である
8.むずかしい
停止問題(halting problem)が示していることはどれですか?
- Aループは避けるべきである
- Bすべてのプログラムはいずれ停止する
- C一部のプログラムは高速なコンピュータでより速く動作するので、停止するかどうかはハードウェアに依存するから
- Dすべてのプログラムと入力について、それが停止するかどうかを判定できるアルゴリズムは存在しない
解答
- 1. B · 4 秒
- 2. C · O(n²)
- 3. B · O(n)
- 4. C · 最適解を部分問題の最適解から構成できる
- 5. C · O(d(n + k))
- 6. B · 開始頂点から 1 本の木を成長させ、木から出る最も安い辺を加える
- 7. A · NP 困難である
- 8. D · すべてのプログラムと入力について、それが停止するかどうかを判定できるアルゴリズムは存在しない
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。