什么时候应该重新整理哈希表呢?

Ast*_*isk 3 algorithm hash hashtable

我如何决定何时对整个哈希表进行重新整理?

Jer*_*fin 7

这在很大程度上取决于你如何解决冲突.如果您使用线性探测,性能通常会在负载因子远高于60%左右时开始下降.如果使用双重散列,则80-85%的负载系数通常非常合理.如果使用碰撞链,性能通常保持合理,载荷系数高达150%左右或更高.

我有时甚至创建了一个带有平衡树的哈希表来进行冲突解决.在这种情况下,您几乎可以忘记重新散列 - 在项目数量超过表格大小至少几个数量级之前,性能不会明显恶化.