応用情報技術者 2023年 春期 午前2 問19
問題文
ハッシュ表の理論的な探索時間を示すグラフはどれか。ここで、複数のデータが同ハッシュ値になることはないものとする。

選択肢
ア:
イ:
ウ:
エ:(正解)
ハッシュ表の理論的な探索時間を示すグラフ【午前2 解説】
要点まとめ
- 結論:ハッシュ表の理論的な探索時間はデータ数に関係なく一定で、水平直線で表されます。
- 根拠:ハッシュ関数により直接アクセスできるため、探索時間は平均してとなり、データ数の増加に影響されません。
- 差がつくポイント:衝突がない理想的な場合の探索時間と、衝突が発生する場合の探索時間の違いを理解し、グラフの形状を正確に把握することが重要です。
正解の理由
選択肢エは、探索時間がデータ数に依存せず一定であることを示す水平直線です。ハッシュ表は理想的に衝突がなく、ハッシュ値から直接データ位置を特定できるため、探索時間は一定時間で完了します。したがって、探索時間が増加しないことを示す水平線が正しいグラフです。
よくある誤解
ハッシュ表の探索時間はデータ数が増えると比例して増加すると誤解しやすいですが、理想的なハッシュ表では探索時間は一定です。衝突がある場合は増加しますが、問題文では衝突がないと明示されています。
解法ステップ
- 問題文で「複数のデータが同ハッシュ値になることはない」と確認する。
- ハッシュ表の理論的な探索時間はで一定であることを思い出す。
- 探索時間がデータ数に依存しないグラフを探す。
- 水平直線で表される選択肢エを選択する。
選択肢別の誤答解説
- ア:探索時間がデータ数の増加に伴い急激に増加する凸状の曲線は、線形探索や衝突が多い場合のグラフに近く誤り。
- イ:探索時間が一定の割合で増加する直線は、線形探索やリニアサーチの特徴でありハッシュ表の理論値ではない。
- ウ:探索時間が増加するが増加幅が小さくなる凹状の曲線は、衝突解消のためのチェイン法などで平均探索時間が増加する場合のイメージで誤り。
- エ:探索時間が一定で水平直線を示し、理想的なハッシュ表の理論的探索時間を正しく表現している。
補足コラム
ハッシュ表の探索時間は理想的にはですが、実際にはハッシュ関数の性能や衝突解消法によって変動します。衝突が多い場合は探索時間が増加し、最悪の場合はになることもあります。問題文のように衝突がない理想状態を理解することが基本です。
FAQ
Q: ハッシュ表の探索時間はなぜ一定なのですか?
A: ハッシュ関数によりデータの位置が直接計算できるため、探索にかかる時間はデータ数に依存せず一定です。
A: ハッシュ関数によりデータの位置が直接計算できるため、探索にかかる時間はデータ数に依存せず一定です。
Q: 衝突がある場合の探索時間はどうなりますか?
A: 衝突があるとチェイン法やオープンアドレス法で探索時間が増加し、平均的にはからまで変動します。
A: 衝突があるとチェイン法やオープンアドレス法で探索時間が増加し、平均的にはからまで変動します。
関連キーワード: ハッシュ表、探索時間、ハッシュ関数、衝突、時間計算量、データ構造、アルゴリズム

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

