1.やさしい
分割統治アルゴリズムの 3 つのステップは何ですか?
- A推測、確認、反復
- B読み込み、計算、書き出し
- Cソート、探索、返却
- D分割、統治、結合
2.やさしい
あるループは i = 1 から始まり、i > n となるまで各反復で i を 2 倍にします。何回反復しますか?
- A約 n / 2 回
- B約 n² 回
- C約 n 回
- D約 log₂ n 回
3.やさしい
平均実行時間は何を表しますか?
- Aサイズ n の入力の与えられた分布に対する期待所要時間
- B平均的な長さの入力に対する所要時間
- C最も一般的なコンピュータでの所要時間
- D最良の場合と最悪の場合の実行時間の中間の値
4.ふつう
for i = 1 to n: (j = 1; while j < n: j = j × 2) の時間計算量は何ですか?
- AO(n)
- BO(log n)
- CO(n log n)
- DO(n²)
5.ふつう
for i = 1 to n: for j = 1 to i: do O(1) work の時間計算量は何ですか?
- AO(n)
- BO(n²)
- CO(n log n)
- DO(n³)
6.ふつう
多くのライブラリのソート関数が、非常に小さな部分配列では挿入ソートに切り替えるのはなぜですか?
- A挿入ソートはオーバーヘッドが小さく、小さな入力やほぼソート済みの入力で速いから
- B大きな入力では、挿入ソートは他のどのソートアルゴリズムよりメモリが少なくて済むから
- C再帰アルゴリズムは 10 要素未満の配列を扱えないから
- D挿入ソートは最悪の場合 O(n log n) だから
7.むずかしい
巡回セールスマン問題はどのように分類されますか?
- A決定版は NP 完全で、最適化版は NP 困難である
- B決定版は P に属するが、最適化版は NP 完全である
- C決定不能である
- Dダイクストラ法がすべての都市を 1 回ずつ訪れて解くので、P に属する
8.むずかしい
どんな入力に対してもクイックソートの期待(expected)実行時間を O(n log n) にする手法はどれですか?
- A常に先頭の要素を選ぶ
- B左側にのみ再帰を使う
- Cピボットを一様ランダムに選ぶ
- Dクイックソートを実行する前に入力をソートする
解答
- 1. D · 分割、統治、結合
- 2. D · 約 log₂ n 回
- 3. A · サイズ n の入力の与えられた分布に対する期待所要時間
- 4. C · O(n log n)
- 5. B · O(n²)
- 6. A · 挿入ソートはオーバーヘッドが小さく、小さな入力やほぼソート済みの入力で速いから
- 7. A · 決定版は NP 完全で、最適化版は NP 困難である
- 8. C · ピボットを一様ランダムに選ぶ
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。