1.やさしい
選択ソート(selection sort)はどのように動作しますか?
- Aシフトによって各要素を成長していくソート済み部分に挿入する
- B配列を半分に分け、それらをマージする
- C未ソート部分の最小値を繰り返し見つけ、それを先頭に交換する
- D順序が逆になっている隣り合う要素を繰り返し交換する
2.やさしい
それぞれ n 回実行される二重の入れ子ループを持つアルゴリズムの計算量は、通常どれですか?
- AO(2n)
- BO(n²)
- CO(n)
- DO(log n)
3.やさしい
増加の上界(upper bound)を表す記法はどれですか?
- ABig Omega
- BLittle omega
- CBig O
- DBig Theta
4.ふつう
n 要素の配列に対するマージソートの再帰は何段階になりますか?
- A約 n / 2
- B約 n
- C約 log₂ n
- D約 √n
5.ふつう
動的計画法(dynamic programming)が有効なのは、問題が次の性質を持つときです。
- A部分問題がまったくないので、1 ステップで解ける
- B重複する部分問題と最適部分構造
- Cランダムな入力のみ
- Dループが一つだけ
6.ふつう
1,000,000 要素のソート済み配列に対して、二分探索は最悪の場合およそ何回の比較を必要としますか?
- A約 1,000 回
- B約 100 回
- C約 20 回
- D約 500,000 回
7.むずかしい
決定問題 X が NP 完全であることを証明するには、どの 2 つのことを示さなければなりませんか?
- AX が P の問題に帰着すること、および X が NP に属すること
- BX が NP に属すること、および既知の NP 完全問題が多項式時間で X に帰着すること
- CX に多項式アルゴリズムがないこと、および X が決定可能であること
- DX が P に属すること、および X が SAT に帰着すること
8.むずかしい
log(n!) について正しい評価はどれですか?
- AΘ(log n)
- BΘ(n)
- CΘ(n log n)
- DΘ(n²)
解答
- 1. C · 未ソート部分の最小値を繰り返し見つけ、それを先頭に交換する
- 2. B · O(n²)
- 3. C · Big O
- 4. C · 約 log₂ n
- 5. B · 重複する部分問題と最適部分構造
- 6. C · 約 20 回
- 7. B · X が NP に属すること、および既知の NP 完全問題が多項式時間で X に帰着すること
- 8. C · Θ(n log n)
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。