解答つきアルゴリズムと計算量ワークシート
無料で印刷できるアルゴリズムと計算量のワークシート:やさしい問題から試験レベルまで 8 問、解答つき。印刷するか PDF で保存できます。
先生方へ: 授業で自由に印刷・コピーしてお使いいただけます。新しいワークシートごとに数値が変わり、専用の解答が付きます。授業ページに ExamProblems へのリンクを載せていただけると嬉しいです。
名前: ____________________ 日付: ____________
1.やさしい
それぞれ n 回実行される二重の入れ子ループを持つアルゴリズムの計算量は、通常どれですか?
- AO(n²)
- BO(2n)
- CO(n)
- DO(log n)
2.やさしい
n 個の要素を持つ未ソートの配列に対する線形探索(linear search)の時間計算量(最悪の場合)は何ですか?
- AO(1)
- BO(log n)
- CO(n²)
- DO(n)
3.やさしい
選択ソート(selection sort)はどのように動作しますか?
- A配列を半分に分け、それらをマージする
- B未ソート部分の最小値を繰り返し見つけ、それを先頭に交換する
- C順序が逆になっている隣り合う要素を繰り返し交換する
- Dシフトによって各要素を成長していくソート済み部分に挿入する
4.ふつう
ある関数は n 回反復するループを 1 つ実行し、その後別に n 回反復するループをもう 1 つ実行します。時間計算量は何ですか?
- AO(n²)
- BO(n)
- CO(log n)
- DO(2ⁿ)
5.ふつう
ならし解析(amortised analysis)は何を測りますか?
- A最良の入力に対するアルゴリズムのコスト
- Bランダムな入力に対する期待コスト
- C最悪の操作列にわたる操作 1 回あたりの平均コスト
- D操作列のどこかにある、最もコストの高い 1 回の操作のコスト
6.ふつう
安定(stable)なソートアルゴリズムはどれですか?
- A選択ソート(一般的な版)
- Bクイックソート(一般的なインプレース版)
- Cマージソート
- Dヒープソート
7.むずかしい
for i = 1 to n: for (j = i; j ≤ n; j = j + i) do O(1) work の時間計算量は何ですか?
- AO(n log n)
- BO(n √n)
- CO(n)
- DO(n²)
8.むずかしい
停止問題(halting problem)が示していることはどれですか?
- Aすべてのプログラムはいずれ停止する
- Bループは避けるべきである
- C一部のプログラムは高速なコンピュータでより速く動作するので、停止するかどうかはハードウェアに依存するから
- Dすべてのプログラムと入力について、それが停止するかどうかを判定できるアルゴリズムは存在しない
解答
- 1. A · O(n²)
- 2. D · O(n)
- 3. B · 未ソート部分の最小値を繰り返し見つけ、それを先頭に交換する
- 4. B · O(n)
- 5. C · 最悪の操作列にわたる操作 1 回あたりの平均コスト
- 6. C · マージソート
- 7. A · O(n log n)
- 8. D · すべてのプログラムと入力について、それが停止するかどうかを判定できるアルゴリズムは存在しない
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。