Data structures 如何在哈希表中保持较小的负载因子?

Data structures 如何在哈希表中保持较小的负载因子?,data-structures,hashtable,quadratic-probing,Data Structures,Hashtable,Quadratic Probing,我正在学习哈希表,尤其是二次探测。我已经读到,如果负载因子,则意味着在某个点(在本例中,当负载因子超过0.5时),您必须分配一个新表(该表比某个因子大,可能是1.5或2,然后四舍五入到最接近的素数),并将旧表中的所有元素复制到该表中(这不是直接复制,项目的新位置通常与旧位置不同).这样做是否有效?如果一开始就有一个大表不是更好吗?有没有与此相关的行话?@aidandeno当它必须增长时,它不是有效的,但添加项的摊余成本仍然是O(1)(原因与数组列表相同)。从一个非常大的表开始意味着增长更少,但如

我正在学习哈希表,尤其是二次探测。我已经读到,如果负载因子,则意味着在某个点(在本例中,当负载因子超过0.5时),您必须分配一个新表(该表比某个因子大,可能是1.5或2,然后四舍五入到最接近的素数),并将旧表中的所有元素复制到该表中(这不是直接复制,项目的新位置通常与旧位置不同).

这样做是否有效?如果一开始就有一个大表不是更好吗?有没有与此相关的行话?@aidandeno当它必须增长时,它不是有效的,但添加项的摊余成本仍然是O(1)(原因与数组列表相同)。从一个非常大的表开始意味着增长更少,但如果你达到了它的极限怎么办?当然,这可能会浪费很多空间。制作一个新的更大的表的动作被称为“重新刷新”。@aidandeno还可能值得注意的是,即使一个巨大的稀疏表提前满足了所有内容,看起来也不像是较少的过程如果不这样做,它可能会因为空间位置的减少而变得更慢。空间和时间不一定是相互排斥的概念。