1.やさしい
順序が誤っている隣接要素を繰り返し交換するソートアルゴリズムはどれですか?
- Aヒープソート(Heap sort)
- Bクイックソート(Quicksort)
- Cバブルソート(Bubble sort)
- Dマージソート(Merge sort)
2.やさしい
3n² + 5n + 2 の Big O は何ですか?
- AO(n²)
- BO(5n)
- CO(n³)
- DO(3n²)
3.やさしい
log₂ 1024 はいくつですか?
- A512
- B12
- C32
- D10
4.ふつう
貪欲法(greedy algorithm)の説明として正しいものはどれですか?
- A可能なすべての解を試す
- B常に最適解を与える
- C再帰のみを使用する
- D各ステップで局所的に最良の選択をする
5.ふつう
1、3、4 の硬貨で金額 6 をつくるとき、貪欲な「最大の硬貨から」方式は最適解と比べて何枚の硬貨を使いますか?
- A貪欲法は 4 枚、最適解は 3 枚
- B貪欲法は 2 枚、最適解は 2 枚
- C貪欲法は 3 枚、最適解は 2 枚
- D貪欲法は 3 枚、最適解は 3 枚
6.ふつう
多くのライブラリのソート関数が、非常に小さな部分配列では挿入ソートに切り替えるのはなぜですか?
- A大きな入力では、挿入ソートは他のどのソートアルゴリズムよりメモリが少なくて済むから
- B再帰アルゴリズムは 10 要素未満の配列を扱えないから
- C挿入ソートは最悪の場合 O(n log n) だから
- D挿入ソートはオーバーヘッドが小さく、小さな入力やほぼソート済みの入力で速いから
7.むずかしい
クラス NP の定義として正しいものはどれですか?
- A多項式でない問題
- B多項式時間で解けない問題
- C証拠(certificate)が与えられれば、「はい」の答えを多項式時間で検証できる決定問題
- Dどのアルゴリズムでも解けない問題
8.むずかしい
little-o 記法について正しい記述はどれですか?
- A2n はゆっくり増加するので、2n = o(n)
- Bn² = o(n)
- Cどの関数も自分自身の little-o なので、n = o(n)
- Dn = o(n²) だが、n は o(n) ではない
解答
- 1. C · バブルソート(Bubble sort)
- 2. A · O(n²)
- 3. D · 10
- 4. D · 各ステップで局所的に最良の選択をする
- 5. C · 貪欲法は 3 枚、最適解は 2 枚
- 6. D · 挿入ソートはオーバーヘッドが小さく、小さな入力やほぼソート済みの入力で速いから
- 7. C · 証拠(certificate)が与えられれば、「はい」の答えを多項式時間で検証できる決定問題
- 8. D · n = o(n²) だが、n は o(n) ではない
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。