1.やさしい
標準的な配列ベースのマージソートは、どれだけの追加メモリを使いますか?
- AO(1)
- BO(n²)
- CO(n)
- DO(log n)
2.やさしい
ある O(n²) アルゴリズムは n = 1000 で 1 秒かかります。n = 2000 ではおよそ何秒かかりますか?
- A2 秒
- B1 秒
- C8 秒
- D4 秒
3.やさしい
n 個の要素を持つ未ソートの配列に対する線形探索(linear search)の時間計算量(最悪の場合)は何ですか?
- AO(n)
- BO(n²)
- CO(log n)
- DO(1)
4.ふつう
重みなしグラフでの幅優先探索(BFS)で求められるものはどれですか?
- Aすべてのグラフにおけるトポロジカル順序
- B負の辺の重みを含むグラフでの最短経路
- C最小全域木
- D始点ノードからの辺の数で測った最短経路
5.ふつう
ならし解析(amortised analysis)は何を測りますか?
- A操作列のどこかにある、最もコストの高い 1 回の操作のコスト
- B最悪の操作列にわたる操作 1 回あたりの平均コスト
- C最良の入力に対するアルゴリズムのコスト
- Dランダムな入力に対する期待コスト
6.ふつう
貪欲法(greedy algorithm)の説明として正しいものはどれですか?
- A各ステップで局所的に最良の選択をする
- B可能なすべての解を試す
- C常に最適解を与える
- D再帰のみを使用する
7.むずかしい
極大マッチングのすべての辺の両端点をとると頂点被覆が得られます。この被覆はどれくらいよいですか?
- A最適解と比べた品質は不明
- B最小頂点被覆のサイズの高々 2 倍
- C最小値の高々 log n 倍
- D常に最小頂点被覆
8.むずかしい
単方向連結リストでは、二分探索が O(log n) 時間にならないのはなぜですか?
- A連結リストのノードでの比較は遅いから
- Bインデックスによる直接アクセスがないので、中央の要素に到達するのに O(n) ステップかかるから
- C二分探索には少なくとも 2 倍のメモリが必要だから
- D連結リストはソートできないから
解答
- 1. C · O(n)
- 2. D · 4 秒
- 3. A · O(n)
- 4. D · 始点ノードからの辺の数で測った最短経路
- 5. B · 最悪の操作列にわたる操作 1 回あたりの平均コスト
- 6. A · 各ステップで局所的に最良の選択をする
- 7. B · 最小頂点被覆のサイズの高々 2 倍
- 8. B · インデックスによる直接アクセスがないので、中央の要素に到達するのに O(n) ステップかかるから
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。