1.やさしい
n が大きいとき、最も速く増加する計算量クラスはどれですか?
- AO(n³)
- BO(n log n)
- CO(2ⁿ)
- DO(n²)
2.やさしい
選択ソート(selection sort)はどのように動作しますか?
- A配列を半分に分け、それらをマージする
- B順序が逆になっている隣り合う要素を繰り返し交換する
- Cシフトによって各要素を成長していくソート済み部分に挿入する
- D未ソート部分の最小値を繰り返し見つけ、それを先頭に交換する
3.やさしい
空間計算量(space complexity)が測るものはどれですか?
- Aコンパイル後のプログラムファイルのディスク容量
- Bコンピュータの物理的な大きさ
- C入力が大きくなるにつれてアルゴリズムが必要とするメモリ量
- Dコードの行数
4.ふつう
漸化式 T(n) = 2T(n/2) + O(n) の解はどれですか?
- AO(n)
- BO(log n)
- CO(n log n)
- DO(n²)
5.ふつう
漸化式 T(n) = 2T(n − 1) + O(1) の解は何ですか?
- AO(2ⁿ)
- BO(n)
- CO(n²)
- DO(n log n)
6.ふつう
for i = 1 to n: (j = 1; while j < n: j = j × 2) の時間計算量は何ですか?
- AO(n)
- BO(n²)
- CO(log n)
- DO(n log n)
7.むずかしい
最短単純路は多項式時間で見つけられます。一般のグラフで 2 頂点間の最長単純路を見つけることについて、何が知られていますか?
- A重みの符号を反転すればダイクストラ法で解ける
- BNP 困難である
- C常に O(V + E) で解ける
- D決定不能である
8.むずかしい
22n は O(2ⁿ) に属しますか?
- Aいいえ。22n = 4ⁿ であり、4ⁿ / 2ⁿ = 2ⁿ は限りなく大きくなるから
- Bいいえ。22n は 2ⁿ よりゆっくり増加するから
- Cはい。Big O では指数の定数倍は常に無視されるから
- Dはい。どちらも指数的だから
解答
- 1. C · O(2ⁿ)
- 2. D · 未ソート部分の最小値を繰り返し見つけ、それを先頭に交換する
- 3. C · 入力が大きくなるにつれてアルゴリズムが必要とするメモリ量
- 4. C · O(n log n)
- 5. A · O(2ⁿ)
- 6. D · O(n log n)
- 7. B · NP 困難である
- 8. A · いいえ。22n = 4ⁿ であり、4ⁿ / 2ⁿ = 2ⁿ は限りなく大きくなるから
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。