探索 / Hash Table(ハッシュテーブル)

キーをハッシュして
バケットへ置く。

平均的には高速に探索できますが、衝突が起きると工夫が必要です。教材では衝突解決の考え方まで見せます。

探索比較教材動作イメージ付き

目次

このページの目次

このページでわかること

先に知っておくポイント

1. 何を比較するか
2. 候補がどう減るか
3. 前提条件があるか

概要

概要

平均的には高速に探索できますが、衝突が起きると工夫が必要です。教材では衝突解決の考え方まで見せます。

考え方

擬似コード

index = hash(key) % tableSize
if bucket occupied then resolve collision
store or search in bucket

要点

要点まとめ

Average search

O(1)

Worst search

O(n)

良いハッシュ

論点

衝突

補足

向いている場面と注意点

平均が速い理由

狙ったバケットへ直接飛べるからです。

衝突

同じ場所に複数キーが来ると連鎖や再配置が必要です。

教え方

衝突前後の見た目の変化を出すと理解しやすいです。

動きで確認

動きを見てたしかめる

ここでは「何を比較するか」を見ながら、上で読んだ内容を動きと結びつけます。

注目発見除外

次に見る

次に見るページ

比較すると違いがわかりやすいページを先に置いています。