【かっこうはっしゅほう】
カッコウハッシュ法 とは?
最終更新:
💡 先客を追い出して席を取る、カッコウ流のハッシュ表
複数のハッシュ関数を使い、衝突したら先にいる要素を追い出して別の候補位置へ移すハッシュ表の方式。検索が最悪でも決まった回数の確認で済む。
📌 このページのポイント
カッコウハッシュ法って何?
挿入先にいる要素を追い出し、その要素を別の候補へ移すハッシュ表の方式だよ。先客の場所を取る様子を、カッコウの巣にたとえた名前なんだ。
具体的にはどうやって入れるの?
両方とも埋まっていたらどうなるの?
片方の場所にいる既存の要素を追い出して、そこに新しい要素を入れるんだ。追い出された要素は、自分のもう一方の候補の場所へ移るよ。そこにも先客がいれば、また追い出す。これを空きが見つかるまで繰り返すんだね。
それって、ずっと終わらないことはないの?
そんな面倒なことをして、何が嬉しいの?
まとめ:ざっくりこれだけ覚えればOK!
「カッコウハッシュ法」って出てきたら「先客を別の候補へ移して挿入するハッシュ表」と思えばだいたいOK!
📖 おまけ:英語の意味
「Cuckoo Hashing」 = カッコウハッシュ法
💬 新しい要素が先客を追い出して場所を取る様子を、カッコウの巣の比喩で表した名前だよ。