哈希表 - 为什么哈希函数和压缩函数应该分开?

时间:2018-05-03 11:55:12

标签: data-structures hash hashtable hash-function

我想知道为什么在使用哈希表时需要分离哈希函数和压缩函数?

AFAIK,首先哈希函数计算索引,压缩函数用于缩小范围。 当值插入到数组中时,不是压缩键(索引)那么只有重要的东西吗?

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的术语,则散列函数应适用于任何大小的数组,而压缩函数特定于当前大小。因此哈希函数可能返回相同的32位数,压缩将例如计算所述数的模数以知道要使用哪个数组索引。由于散列表的大多数实现在表更改时会动态收缩和增长,因此将两者分开是有意义的。