布谷鸟哈希深度实战:从双哈希候选、驱逐重定位到分桶与 Stash 的生产级工程全解
系统拆解布谷鸟哈希的第一性原理:每个键只有两个候选桶(双哈希),查询最坏 O(1) 且与负载率无关;推导插入时"踢走占用者(evict/kick)"的驱逐重定位算法、其终止性与失败概率,以及临界负载率 α*≈0.49(k=2)的由来;解析 Stash 旁路数组把溢出概率压到 O(1/√N) 的工程技巧、rehash 扩容换种子打破置换环的方法。展开 d-left hashing、分桶布谷鸟(b=4 推到负载率 0.99+)、计数布谷鸟、并发布谷鸟(多核锁粒度/tombstone 退化)等变体,并给出 Cuckoo Filter——可删、比 Bloom 省 1.5~2 倍空间的近似成员查询替身。附带可插拔双哈希、带 Stash 与自动扩容的生产级 Python 实现(插入/查询/删除/重建),与链地址/线性探测/布隆的分工对照表,以及 12 项生产陷阱清单(哈希相关性、MAX_LOOP、Stash 增长、扩容换种子、并发 tombstone、分桶 b 过大等)。与本站《布隆过滤器》(16214)、《Count-Min Sketch》(16270)、《HyperLogLog》(16312) 共同构成"概率与高性能数据结构工程"系列,补齐确定性 O(1) 查询 + 可删除 + 高负载率维度。
