1.やさしい
0 から k の範囲の n 個の整数に対する計数ソート(counting sort)の実行時間は何ですか?
- AO(k log n)
- BO(n²)
- CO(n log n)
- DO(n + k)
2.やさしい
選択ソート(selection sort)はどのように動作しますか?
- Aシフトによって各要素を成長していくソート済み部分に挿入する
- B未ソート部分の最小値を繰り返し見つけ、それを先頭に交換する
- C順序が逆になっている隣り合う要素を繰り返し交換する
- D配列を半分に分け、それらをマージする
3.やさしい
増加の上界(upper bound)を表す記法はどれですか?
- ABig O
- BLittle omega
- CBig Omega
- DBig Theta
4.ふつう
貪欲法(greedy algorithm)の説明として正しいものはどれですか?
- A各ステップで局所的に最良の選択をする
- B再帰のみを使用する
- C可能なすべての解を試す
- D常に最適解を与える
5.ふつう
安定(stable)なソートアルゴリズムはどれですか?
- A選択ソート(一般的な版)
- Bヒープソート
- Cマージソート
- Dクイックソート(一般的なインプレース版)
6.ふつう
ソート済み配列で、両端から 1 つずつポインタを内側へ動かして、和が目標値になる 2 つの要素を探します。時間計算量は何ですか?
- AO(n log n)
- BO(n²)
- CO(n)
- DO(log n)
7.むずかしい
単方向連結リストでは、二分探索が O(log n) 時間にならないのはなぜですか?
- A二分探索には少なくとも 2 倍のメモリが必要だから
- Bインデックスによる直接アクセスがないので、中央の要素に到達するのに O(n) ステップかかるから
- C連結リストのノードでの比較は遅いから
- D連結リストはソートできないから
8.むずかしい
カラツバ乗算は T(n) = 3T(n/2) + O(n) を満たします。この解は何ですか?
- AΘ(n log n)
- BΘ(n²)
- CΘ(n3)
- DΘ(nlog₂ 3)、約 n1.585
解答
- 1. D · O(n + k)
- 2. B · 未ソート部分の最小値を繰り返し見つけ、それを先頭に交換する
- 3. A · Big O
- 4. A · 各ステップで局所的に最良の選択をする
- 5. C · マージソート
- 6. C · O(n)
- 7. B · インデックスによる直接アクセスがないので、中央の要素に到達するのに O(n) ステップかかるから
- 8. D · Θ(nlog₂ 3)、約 n1.585
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。