n≤m とし、すべてのキーを表 T[0..m−1] に直接格納します。探査関数 h:U×{0,1,…,m−1}→{0,…,m−1} を、各キー k について探査列 ⟨h(k,0),h(k,1),…,h(k,m−1)⟩ が {0,…,m−1} の並べ替えになるように定めます。
- 挿入:i=0,1,2,… の順に T[h(k,i)] を調べ、最初に見つかった空スロットに置く。
- 探索:同じ順に調べ、キーが一致すれば成功。空スロットに当たったら「無い」と答えて終了する。
代表的な探査法は次の 3 つです。
- 線形探査:h(k,i)=(h′(k)+i)modm
- 二次探査:h(k,i)=(h′(k)+c1i+c2i2)modm(c1,c2,m は探査列が表全体を覆うように選ぶ)
- 二重ハッシュ:h(k,i)=(h1(k)+i⋅h2(k))modm(h2(k) は m と互いに素でなければならない。m を素数にして 1≤h2(k)≤m−1 とすればよい)