1.やさしい
n 個の要素を持つ未ソートの配列に対する線形探索(linear search)の時間計算量(最悪の場合)は何ですか?
- AO(1)
- BO(n)
- CO(log n)
- DO(n²)
2.やさしい
増加の上界(upper bound)を表す記法はどれですか?
- ALittle omega
- BBig Theta
- CBig Omega
- DBig O
3.やさしい
二分探索は入力に何を要求しますか?
- A配列の要素が 1000 個以下であること
- B配列が正の数だけを含むこと
- C配列の長さが 2 のべき乗であること
- D配列がソートされていること
4.ふつう
安定(stable)なソートアルゴリズムはどれですか?
- A選択ソート(一般的な版)
- Bクイックソート(一般的なインプレース版)
- Cマージソート
- Dヒープソート
5.ふつう
多くのライブラリのソート関数が、非常に小さな部分配列では挿入ソートに切り替えるのはなぜですか?
- A挿入ソートは最悪の場合 O(n log n) だから
- B挿入ソートはオーバーヘッドが小さく、小さな入力やほぼソート済みの入力で速いから
- C再帰アルゴリズムは 10 要素未満の配列を扱えないから
- D大きな入力では、挿入ソートは他のどのソートアルゴリズムよりメモリが少なくて済むから
6.ふつう
ソート済み配列で、両端から 1 つずつポインタを内側へ動かして、和が目標値になる 2 つの要素を探します。時間計算量は何ですか?
- AO(n log n)
- BO(log n)
- CO(n)
- DO(n²)
7.むずかしい
ベルマン-フォード法は、始点から到達可能な負の重みの閉路をどのように検出しますか?
- Aダイクストラ法を 2 回実行し、2 つの距離の結果を比べる
- B負の重みをもつ辺があるかどうかを調べる
- CV − 1 回のラウンドの後、まだ緩和できる辺があるかどうかを調べる
- D深さ優先探索で閉路を数える
8.むずかしい
挿入ソートはソート済みの入力に対して O(n) で動作します。これは比較ソートの Ω(n log n) の下界と矛盾しますか?
- Aはい。ただし 100 より短い配列の場合に限る
- Bいいえ。下界はすべての入力にわたる最悪の場合に適用されるのであって、すべての入力に適用されるわけではない
- Cいいえ。挿入ソートは比較ソートではないから
- Dはい。したがって下界は誤りである
解答
- 1. B · O(n)
- 2. D · Big O
- 3. D · 配列がソートされていること
- 4. C · マージソート
- 5. B · 挿入ソートはオーバーヘッドが小さく、小さな入力やほぼソート済みの入力で速いから
- 6. C · O(n)
- 7. C · V − 1 回のラウンドの後、まだ緩和できる辺があるかどうかを調べる
- 8. B · いいえ。下界はすべての入力にわたる最悪の場合に適用されるのであって、すべての入力に適用されるわけではない
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。