応用情報技術者 2018年 秋期 午前2 問08
問題文
探索表の構成法を例とともにa〜cに示す。最も適した探索手法の組合せはどれか。ここで、探索表のコードの空欄は表の空きを示す。


選択肢
ア:(正解)
イ:
ウ:
エ:
探索表の構成法と最適探索手法の組合せ【午前2 解説】
要点まとめ
- 結論:コード順の探索表は2分探索、使用頻度順は線形探索、コード位置決定型はハッシュ表探索が最適です。
- 根拠:2分探索は整列済みデータに有効、線形探索は頻度順で先頭にヒットしやすく効率的、ハッシュ表はコードから直接位置を特定可能です。
- 差がつくポイント:探索表の構造と探索手法の適合性を理解し、探索効率を最大化する選択が重要です。
正解の理由
- aはコード順に整列されているため、2分探索が高速で効率的です。
- bは使用頻度順に並んでおり、頻度の高いコードが先頭にあるため線形探索でも平均探索回数が少なく済みます。
- cはコードから格納位置が一定に決まるため、ハッシュ表探索が最適で直接アクセスが可能です。
これらの理由から、選択肢ア(a:2分探索、b:線形探索、c:ハッシュ表探索)が正解です。
よくある誤解
- 「整列されていれば線形探索でも十分」と考えがちですが、2分探索の方が効率的です。
- 使用頻度順の探索表に2分探索を適用すると、頻度の高い要素を活かせず非効率になります。
解法ステップ
- 各探索表の構成を確認し、整列状態や格納規則を把握する。
- 整列済みなら2分探索、整列されていなければ線形探索やハッシュ探索を検討。
- 使用頻度順なら線形探索が有効か判断。
- コードから位置が決まる場合はハッシュ表探索を選択。
- 各探索手法の特徴と探索表の構造を照合し、最適な組合せを選ぶ。
選択肢別の誤答解説
- イ:bにハッシュ表探索を選んでいるが、bは使用頻度順でハッシュ表は不適切。
- ウ:aに線形探索を選んでいるが、aは整列済みで2分探索が効率的。
- エ:cに2分探索を選んでいるが、cはコードから位置が決まるためハッシュ表探索が適切。
補足コラム
- 2分探索は整列済み配列に対しての探索時間を持ち、効率的です。
- 線形探索は整列されていない場合や使用頻度順のように先頭にヒットしやすい場合に有効です。
- ハッシュ表探索はハッシュ関数によりコードから直接格納位置を計算し、平均の高速アクセスを実現します。
FAQ
Q: 2分探索はどんな場合に使うべきですか?
A: データが昇順や降順に整列されている場合に使い、探索効率が大幅に向上します。
A: データが昇順や降順に整列されている場合に使い、探索効率が大幅に向上します。
Q: 使用頻度順の探索表でなぜ線形探索が有効なのですか?
A: 頻度の高いデータが先頭にあるため、平均探索回数が少なくなり効率的だからです。
A: 頻度の高いデータが先頭にあるため、平均探索回数が少なくなり効率的だからです。
Q: ハッシュ表探索の欠点は何ですか?
A: ハッシュ関数の衝突が発生すると探索効率が低下し、衝突解決法が必要になります。
A: ハッシュ関数の衝突が発生すると探索効率が低下し、衝突解決法が必要になります。
関連キーワード: 2分探索、線形探索、ハッシュ表探索、探索表、データ構造、探索アルゴリズム

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

