1.やさしい
それぞれ n 回実行される二重の入れ子ループを持つアルゴリズムの計算量は、通常どれですか?
- AO(2n)
- BO(n)
- CO(n²)
- DO(log n)
2.やさしい
総当たり(brute-force)アルゴリズムとは何ですか?
- A常に再帰を使うアルゴリズム
- B考えられるすべての候補解を試すアルゴリズム
- C多数のプロセッサで動作するアルゴリズム
- D答えをランダムに推測するアルゴリズム
3.やさしい
f(n) = Θ(g(n)) はどういう意味ですか?
- Af は g より真に速く増加する
- Bf は g より真に遅く増加する
- Cf は g と同じ速さで増加し、上下から g の定数倍で抑えられる
- Dすべての n について f は常に g より小さいので、g は上からは抑えるが下からは決して抑えない
4.ふつう
プリム法は最小全域木をどのように構築しますか?
- A閉路がなくなるまで最も高い辺を取り除く
- B開始頂点から 1 本の木を成長させ、木から出る最も安い辺を加える
- Cすべての辺を重みでソートし、森の中で閉路をつくる場合を除いて 1 本ずつ加える
- D幅優先探索を実行し、BFS 木を残す
5.ふつう
辺の重みが非負のグラフで、一つの始点からの最短経路を求めるアルゴリズムはどれですか?
- ADijkstra 法
- BKruskal 法
- Cどの場合でも Bellman–Ford が必要
- D深さ優先探索(DFS)
6.ふつう
あるクイックソートは常に最初の要素をピボットに使います。どの入力で最悪の振る舞いを示しますか?
- Aすでにソートされている配列
- Bランダムな順序の配列
- Cすべての要素が異なる配列
- D長さ 2 の配列
7.むずかしい
クラス NP の定義として正しいものはどれですか?
- Aどのアルゴリズムでも解けない問題
- B証拠(certificate)が与えられれば、「はい」の答えを多項式時間で検証できる決定問題
- C多項式でない問題
- D多項式時間で解けない問題
8.むずかしい
単方向連結リストでは、二分探索が O(log n) 時間にならないのはなぜですか?
- A二分探索には少なくとも 2 倍のメモリが必要だから
- B連結リストのノードでの比較は遅いから
- Cインデックスによる直接アクセスがないので、中央の要素に到達するのに O(n) ステップかかるから
- D連結リストはソートできないから
解答
- 1. C · O(n²)
- 2. B · 考えられるすべての候補解を試すアルゴリズム
- 3. C · f は g と同じ速さで増加し、上下から g の定数倍で抑えられる
- 4. B · 開始頂点から 1 本の木を成長させ、木から出る最も安い辺を加える
- 5. A · Dijkstra 法
- 6. A · すでにソートされている配列
- 7. B · 証拠(certificate)が与えられれば、「はい」の答えを多項式時間で検証できる決定問題
- 8. C · インデックスによる直接アクセスがないので、中央の要素に到達するのに O(n) ステップかかるから
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。