我正在研究一个哈希表实现,它说当表满75%时,表的大小将增加一倍,这使它的平均填充率为:
(75 + 75 / 2) / 2 = 56%.
作者是如何得出这个公式的?如果桌子的大小增加了三倍,2会变成3吗?
(75+75/2(/2=56%。
这基本上是说,当调整大小时,表将满75%(第一个75
(,但之前的调整大小会发生在表一半大的时候,所以当时元素数量会是调整大小所需的一半,所以75 / 2
。在括号外,后面的/ 2
取这两个载荷系数的平均值。
如果桌子的大小增加了两倍,那么我们就会有:
(75+75/3(/2=50%。
这反映了调整大小后的负载因子现在只有25%,但我们仍然有一个尾随的/ 2
来获得初始25%负载因子和75%负载因子的平均值,在75%负载因子下它将再次调整大小。