散列表中空间利用率与负载因子的区别

Stu*_*t56 5 hashtable data-structures

Hashtable中的Load factor和Space利用率有什么区别?请有人解释一下!

fat*_*ihk 0

Load factor是衡量哈希表相对于其总数的填充程度的指标buckets。假设您有 1000 个存储桶,并且您最多只想存储其中的 70%。如果load factor比率超过(存储超过 700 个元素)这个最大比率,则可以增加哈希表大小以有效容纳更多元素。

Space utilization是哈希表中已填充的桶数与桶总数的比率。

通常,当负载因子增加时,空间利用率会增加,并且在ideal哈希表中,负载因子和空间利用率应该彼此线性相关。然而,在大多数情况下,空间利用率是sublinear负载因子的函数,因为在高负载因子比率的情况下,一些存储桶被分配来容纳超过 1 个元素。

为了获得接近理想情况的哈希性能,您可能需要一个perfect hashing function.

完美的散列函数将密钥映射到唯一的地址。如果潜在地址的范围与键的数量相同,则该函数是最小(在空间上)完美散列函数