戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2012年 秋期 午前(科目A)03


問題文

探索方法とその実行時間のオーダの適切な組合せはどれか。ここで、探索するデータの数をとし、ハッシュ値が衝突する(同じ値になる)確率は無視できるほど小さいものとする。また、実行時間のオーダがであるとは、個のデータを処理する時間が(は定数)で抑えられることをいう。
基本情報技術者 2012年 秋期 午前(科目A) 問03の選択肢の画像

選択肢

(正解)

探索方法と実行時間の組合せ【午前2 解説】

要点まとめ

  • 結論:二分探索は 、線形探索は 、ハッシュ探索は平均で (衝突無視)が正解です。
  • 根拠:二分探索は探索範囲を半分にするので対数回の比較、線形は逐次走査、ハッシュは計算+直接参照で定数時間となります。
  • 差がつくポイント:二分探索は「整列済み+ランダムアクセス」が必要、ハッシュは衝突やロードファクタで実測性能が変わります。

正解の理由

正解は です。
理由は次のとおりです。二分探索は事前に整列された配列などで、探索ごとに探索範囲を半分にできるため比較回数が となります。線形探索は先頭から順に要素をチェックするため最悪/平均で です。ハッシュ探索は衝突確率を無視できる前提ならハッシュ関数の計算と配列参照のみで完了するため平均 (定数時間)となり、表中の「ア」の組合せが正しいです。

よくある誤解

  • 二分探索 = とする誤り:これはソートアルゴリズム(例:マージソート)の計算量と混同したものです。二分探索自体は探索のみで です。
  • ハッシュは常に :平均では定数ですが、衝突が極端に多い場合や悪意ある入力では最悪 になる点を見落としがちです。
  • リンクリストで二分探索が :連続したランダムアクセスが必要なため、単方向リストでは二分探索は効率的に実装できず になることがあります。

解法ステップ

  1. 各探索法がどのデータ構造/前提(整列・ランダムアクセス・ハッシュ表)を要求するか確認する。
  2. その前提下で1回の探索に要する基本操作(比較、配列参照、ハッシュ計算など)を列挙する。
  3. 基本操作の回数が入力サイズ に対してどう増えるかを考え、 を導く。
  4. 平均/最悪ケースの区別が必要な場合は問題文の前提(衝突無視など)に従う。
  5. 選択肢と照らし合わせて当てはまる組合せを選ぶ。

選択肢別の誤答解説

  • :正しい。二分探索 、線形探索 、ハッシュ探索(衝突無視で) の組合せは理論どおりです。
  • イ:誤り。二分探索を としていますが、これはソート等の計算量で、探索単体は です。ハッシュ探索を とするのも誤りです。
  • ウ:誤り。二分探索を 、線形探索を と誤って評価しています。線形探索は 、二分探索は です。ハッシュは正しく ですが他が間違いです。
  • エ:誤り。二分探索 、線形探索 、ハッシュ探索 と逆転・大幅な誤認がある組合せで、現実の性質と一致しません。

補足コラム

  • 対数の底()は定数倍の差でありオーダー記法では無視されます。
  • ハッシュ表の実際の性能はロードファクタ(要素数/バケット数)やリハッシュ戦略に依存し、リハッシュは「平均的に」定数時間に含まれる(アマortized cost)。
  • 二分探索は必ず「整列済み」のデータに使います。未整列データで探索を高速に行いたければ、事前にソート()するかハッシュ表を構築(~)します。
  • 平衡二分探索木(AVLや赤黒木)は探索 、挿入削除も 。ハッシュ表は挿入削除検索が平均

FAQ

Q1: 二分探索はどんなデータ構造でも ですか?
A1: いいえ。ランダムアクセス可能な配列やランダムアクセスを許す構造が前提です。単純な単方向リンクリストではランダムアクセスできないため二分探索は効率的に実装できません。
Q2: ハッシュ探索の最悪ケースは?
A2: 衝突が全て同じバケットに集中すると最悪で になります。実装やハッシュ関数次第で回避できますが理論上はあり得ます。
Q3: 二分探索の対数の底は重要ですか?
A3: アルゴリズム解析では底は定数倍でしかないため無視します。 は同じオーダーです。
Q4: 未整列配列で探索を高速にしたい場合の選択肢は?
A4: 頻繁な探索があるならハッシュ表に入れる(構築コストがある)、あるいは一度ソートして二分探索を行う(ソートに )を検討します。

関連キーワード: 二分探索、線形探索、ハッシュ探索、時間計算量、オーダー記法、平均計算時間、最悪計算時間、ロードファクタ、衝突、整列、ランダムアクセス、アマortizedコスト、ソート、平衡二分探索木
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について