1.やさしい
あるアルゴリズムの実行時間は O(n) です。この増加は何と呼ばれますか?
- A線形
- B対数的
- C定数
- D2 乗
2.やさしい
次の実行時間のうち、多項式時間はどれですか?
- AO(nⁿ)
- BO(n³)
- CO(n!)
- DO(2ⁿ)
3.やさしい
それぞれ n 回実行される二重の入れ子ループを持つアルゴリズムの計算量は、通常どれですか?
- AO(2n)
- BO(n²)
- CO(n)
- DO(log n)
4.ふつう
1、3、4 の硬貨で金額 6 をつくるとき、貪欲な「最大の硬貨から」方式は最適解と比べて何枚の硬貨を使いますか?
- A貪欲法は 3 枚、最適解は 3 枚
- B貪欲法は 3 枚、最適解は 2 枚
- C貪欲法は 2 枚、最適解は 2 枚
- D貪欲法は 4 枚、最適解は 3 枚
5.ふつう
到達可能な基底部をもたない再帰関数について、正しい記述はどれですか?
- AO(1) 時間で動作する
- B自動的に 0 を返す
- Cコンパイラが常にそれを、安全に終了するループに変換する
- Dコールスタックがオーバーフローするまで自分自身を呼び続ける
6.ふつう
長さ m と n の文字列の最長共通部分列を求める標準的な動的計画法の時間計算量は何ですか?
- AO(mn log n)
- BO(mn)
- CO(m + n)
- DO(2m+n)
7.むずかしい
for i = 1 to n: for (j = i; j ≤ n; j = j + i) do O(1) work の時間計算量は何ですか?
- AO(n log n)
- BO(n)
- CO(n √n)
- DO(n²)
8.むずかしい
ハッシュテーブルの平均探索時間が O(1) なのに、最悪の場合は O(n) になるのはなぜですか?
- Aキーを先にソートする必要があるから
- B配列のアクセスが O(n) だから
- C多くのキーが同じバケットで衝突(collision)する可能性があるから
- Dハッシュ関数が遅いから
解答
- 1. A · 線形
- 2. B · O(n³)
- 3. B · O(n²)
- 4. B · 貪欲法は 3 枚、最適解は 2 枚
- 5. D · コールスタックがオーバーフローするまで自分自身を呼び続ける
- 6. B · O(mn)
- 7. A · O(n log n)
- 8. C · 多くのキーが同じバケットで衝突(collision)する可能性があるから
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。