1.やさしい
ある O(n²) アルゴリズムは n = 1000 で 1 秒かかります。n = 2000 ではおよそ何秒かかりますか?
- A4 秒
- B1 秒
- C2 秒
- D8 秒
2.やさしい
ある問題が通常「扱いやすい(tractable)」と呼ばれるのはどのような場合ですか?
- A定数時間で解ける場合
- B解がない場合
- C多項式時間で解ける場合
- Dあらゆる可能性を試すことでしか解けない場合
3.やさしい
順序が誤っている隣接要素を繰り返し交換するソートアルゴリズムはどれですか?
- Aクイックソート(Quicksort)
- Bヒープソート(Heap sort)
- Cバブルソート(Bubble sort)
- Dマージソート(Merge sort)
4.ふつう
比較に基づくソートの最悪の場合の下界はどれですか?
- AΩ(n)
- BΩ(n²)
- CΩ(log n)
- DΩ(n log n)
5.ふつう
安定(stable)なソートアルゴリズムはどれですか?
- Aマージソート
- Bヒープソート
- C選択ソート(一般的な版)
- Dクイックソート(一般的なインプレース版)
6.ふつう
ならし解析(amortised analysis)は何を測りますか?
- A操作列のどこかにある、最もコストの高い 1 回の操作のコスト
- B最悪の操作列にわたる操作 1 回あたりの平均コスト
- Cランダムな入力に対する期待コスト
- D最良の入力に対するアルゴリズムのコスト
7.むずかしい
1 回のインクリメントで多くのビットが反転することがあるとして、2 進カウンタのインクリメントのならしコストは何ですか?
- Aインクリメント 1 回あたり O(log n)
- Bインクリメント 1 回あたり O(1)
- Cインクリメント 1 回あたり O(n)
- Dインクリメント 1 回あたり O(n log n)
8.むずかしい
単方向連結リストでは、二分探索が O(log n) 時間にならないのはなぜですか?
- Aインデックスによる直接アクセスがないので、中央の要素に到達するのに O(n) ステップかかるから
- B二分探索には少なくとも 2 倍のメモリが必要だから
- C連結リストはソートできないから
- D連結リストのノードでの比較は遅いから
解答
- 1. A · 4 秒
- 2. C · 多項式時間で解ける場合
- 3. C · バブルソート(Bubble sort)
- 4. D · Ω(n log n)
- 5. A · マージソート
- 6. B · 最悪の操作列にわたる操作 1 回あたりの平均コスト
- 7. B · インクリメント 1 回あたり O(1)
- 8. A · インデックスによる直接アクセスがないので、中央の要素に到達するのに O(n) ステップかかるから
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。