是使用开放寻址在哈希表的加载因子中计数的删除条目

时间:2010-06-08 09:13:33

标签: hashtable hash load-factor

在使用开放寻址数组实现计算哈希表的加载因子时,我正在使用:

numberOfKeysInArray/sizeOfArray

但是我想到,由于删除的条目必须标记为(以区别于空格),因此将它们包含在键的数量中可能是有意义的。

我的想法是,就估计查找条目的平均探测数量而言,删除的条目应计入加载因子,但就插入新密钥而言,它们不应该这样。

哪个是正确的计算:是否包括已删除的密钥?

1 个答案:

答案 0 :(得分:1)

不,根据定义,负载系数是元素数量与桶数组大小的比率。参见例如Wikipediathis lecture

在计算加载因子中的已删除条目时也存在实际问题。大多数实现都具有最大负载因子。如果实际超过允许的最大值,则后备阵列大小会增加。如果删除的条目计入更高的负载系数,这可能会导致几乎空的但是碎片内容表上的数据大小增加。