在使用开放寻址数组实现计算哈希表的加载因子时,我正在使用:
numberOfKeysInArray/sizeOfArray
但是我想到,由于删除的条目必须标记为(以区别于空格),因此将它们包含在键的数量中可能是有意义的。
我的想法是,就估计查找条目的平均探测数量而言,删除的条目应计入加载因子,但就插入新密钥而言,它们不应该这样。
哪个是正确的计算:是否包括已删除的密钥?
答案 0 :(得分:1)
不,根据定义,负载系数是元素数量与桶数组大小的比率。参见例如Wikipedia或this lecture。
在计算加载因子中的已删除条目时也存在实际问题。大多数实现都具有最大负载因子。如果实际超过允许的最大值,则后备阵列大小会增加。如果删除的条目计入更高的负载系数,这可能会导致几乎空的但是碎片内容表上的数据大小增加。