1.やさしい
アルゴリズムとは何ですか?
- A問題を解く、明確に定義された手順の有限の列
- B数式を書くために設計されたプログラミング言語
- Cグラフィカルなインターフェースをもつあらゆるコンピュータプログラム
- D数値を格納するデータ構造
2.やさしい
メモ化(memoisation)とは何ですか?
- A関数が戻った後にメモリを解放すること
- B再帰を自動的に等価なループに変換し、コールスタックを不要にすること
- C関数呼び出しの結果を保存し、同じ呼び出しにはメモリから答えること
- Dコードの各行の横にコメントを書くこと
3.やさしい
0 から k の範囲の n 個の整数に対する計数ソート(counting sort)の実行時間は何ですか?
- AO(n²)
- BO(n log n)
- CO(k log n)
- DO(n + k)
4.ふつう
V 個の頂点と E 本の辺をもつグラフに対するベルマン-フォード法の時間計算量は何ですか?
- AO(V³ × E)
- BO(V × E)
- CO(E log V)
- DO(V + E)
5.ふつう
O(n²) のアルゴリズムは O(n³) でもあると言うのは正しいですか?
- Aはい。ただし n が 100 より小さい場合に限る
- Bいいえ。Big O は常に関数の正確な増加率を述べなければならないから
- Cいいえ。n が大きいとき n³ は n² より小さいから
- Dはい。Big O は上界であり、n² は n³ より速く増加しないから
6.ふつう
漸化式 T(n) = T(n − 1) + O(1) の解は何ですか?
- AO(n²)
- BO(n)
- CO(2ⁿ)
- DO(log n)
7.むずかしい
シュトラッセンのアルゴリズムは、半分のサイズのブロックの再帰的な掛け算を 8 回ではなく 7 回にして行列を掛けます。実行時間は何ですか?
- AΘ(n³)
- BΘ(n2)
- CΘ(n² log n)
- DΘ(nlog₂ 7)、約 n2.81
8.むずかしい
どんな入力に対してもクイックソートの期待(expected)実行時間を O(n log n) にする手法はどれですか?
- A常に先頭の要素を選ぶ
- B左側にのみ再帰を使う
- Cピボットを一様ランダムに選ぶ
- Dクイックソートを実行する前に入力をソートする
解答
- 1. A · 問題を解く、明確に定義された手順の有限の列
- 2. C · 関数呼び出しの結果を保存し、同じ呼び出しにはメモリから答えること
- 3. D · O(n + k)
- 4. B · O(V × E)
- 5. D · はい。Big O は上界であり、n² は n³ より速く増加しないから
- 6. B · O(n)
- 7. D · Θ(nlog₂ 7)、約 n2.81
- 8. C · ピボットを一様ランダムに選ぶ
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。