如何在我的哈希 table 中保持较小的负载因子?

How do I keep load factor small in my hash table?

我正在学习散列 table,尤其是二次探测。我读过如果负载因子 <= 0.5 并且 table 的大小是质数,则二次探测将始终找到一个空槽并且不会多次访问任何密钥。然后它继续说,为了确保有效的插入,我应该始终保持加载因子 <= 0.5。这是什么意思?当然,如果我们继续添加项目,无论我们是否愿意,负载因子都会增加直到它等于 1。那么,当我的教科书说我应该保持较小的负载系数时,这意味着什么?

这意味着在某些时候(在这种情况下,当您超过 0.5 的负载因子时),您将不得不分配一个新的 table(它比某个因子更大,可能是 1.5或 2,然后四舍五入到最接近的质数)并将旧 table 中的所有元素复制到其中(这不是直接复制,项目的新位置通常与旧位置不同) .