スポンサーリンク

【応用情報技術者試験】探索アルゴリズム 実践問題10問

探索アルゴリズム:線形・二分・ハッシュ・グラフ探索 実践問題

線形探索・二分探索・ハッシュ探索・グラフ探索を10問で比較します。各問を解いてから解説を開き、前提と計算量を確認しましょう。学習用のオリジナル問題です。

解く前の確認

配列が整列済みか、キーに重複があるか、グラフに重みがあるかで使える方法が変わります。計算量の増え方と、実装を指定した厳密な比較回数は区別します。

第1問

昇順に整列済みの配列に対して、探索対象を高速に見つけるアルゴリズムはどれか。

A. 線形探索
B. 二分探索
C. 深さ優先探索
D. 幅優先探索

第1問の解答・解説を見る

正解:B

解説

二分探索は整列済みデータに対して高速探索を行う代表的手法。

第2問

配列A[0..1023]に1〜1024が昇順に入っている。lo=0、hi=1023から始め、mid=⌊(lo+hi)/2⌋で中央を調べ、目的値より小さければlo=mid+1、大きければhi=mid−1とする。1024が見つかるまで中央要素を調べる回数は何回か。中央要素との大小判定一組を1回と数える。

A. 10回
B. 11回
C. 32回
D. 512回

第2問の解答・解説を見る

正解:B(11回)。調べる値は512、768、896、960、992、1008、1016、1020、1022、1023、1024です。log₂1024=10は増え方の目安で、実装を指定した成功時の最大確認回数が必ず10回になるわけではありません。

第3問

二分探索について、適切な説明はどれか。

A. データは整列不要である
B. 探索範囲を半分ずつ狭める
C. 必ず先頭から順番に探索する
D. 木構造専用の探索方式である

第3問の解答・解説を見る

正解:B

解説

二分探索は中央要素を確認し、探索範囲を半分に絞る。

第4問

深さ優先探索(DFS)で主に使用されるデータ構造はどれか。

A. 配列
B. キュー
C. スタック
D. ハッシュ表

第4問の解答・解説を見る

正解:C。DFSはスタックで次に調べる頂点を管理できます。再帰実装では呼出しスタックを使います。配列はスタックを実装する手段にもなるため、ここでは抽象的な管理方式を問うています。

第5問

幅優先探索(BFS)で主に使用されるデータ構造はどれか。

A. スタック
B. キュー
C. 木構造
D. 配列

第5問の解答・解説を見る

正解:B。BFSはFIFOのキューで、先に発見した頂点から順に処理します。配列などでキューを実装することもできます。

第6問

n個の異なる要素のどれもが等確率で探索対象となる成功探索で、線形探索の平均時間計算量として最も適切なものはどれか。

A. O(1)
B. O(log n)
C. O(n)
D. O(n2)

第6問の解答・解説を見る

正解:C。平均確認数は(n+1)/2で、nに比例して増えます。先頭で見つかる最良時はO(1)、最悪時はO(n)です。

第7問

ハッシュ探索の特徴として適切なものはどれか。

A. 必ずデータを整列する必要がある
B. 平均的には高速に探索できる
C. 木構造でしか利用できない
D. 必ず線形探索より遅い

第7問の解答・解説を見る

正解:B。適切なハッシュ関数と負荷率・衝突処理の条件では平均O(1)が期待できますが、衝突が集中するなど最悪時にはO(n)になり得ます。

第8問

ハッシュ法において、異なるキーが同じ格納位置になる現象を何というか。

A. マージ
B. ソート
C. コリジョン
D. スワップ

第8問の解答・解説を見る

正解:C

解説

異なるキーが同じ位置になる現象をコリジョン(衝突)という。

第9問

キーに重複のない二分探索木において、各節点について成り立つ条件として適切なものはどれか。

A. 左部分木 > 親 > 右部分木
B. 左部分木 < 親 < 右部分木
C. 左部分木 = 親 = 右部分木
D. 左右どちらも大小関係はない

第9問の解答・解説を見る

正解:B。各節点について、左部分木の全キーはその節点より小さく、右部分木の全キーは大きくなります。直下の子だけの大小関係では不十分です。重複キーの扱いは別途規則が必要です。

第10問

重みのないグラフで、始点から辺の本数が少ない頂点から順に調べ、最少辺数の経路を求められる方法はどれか。

A. 線形探索
B. 二分探索
C. 深さ優先探索
D. 幅優先探索

第10問の解答・解説を見る

正解:D。BFSは距離を辺の本数として層ごとに探索します。辺ごとに異なる重みがある最短経路へ、そのまま一般化はできません。閉路のあるグラフでは訪問済み管理も必要です。

間違えた分野から復習する

第1〜3・6問は配列探索、第4・5・10問はグラフ探索、第7・8問はハッシュ、第9問は木の条件を確認しましょう。

線形・二分探索やハッシュの計算量を整理したい方は、対応するnote教材へ進めます。グラフ探索専用の解説としてではなく、処理量の基礎を補う教材です。

note:アルゴリズム計算量 完全攻略を読む

他の実践問題を選ぶ

コメント