标签: data-structures hash hashtable hash-function
我想知道为什么在使用哈希表时需要分离哈希函数和压缩函数?
AFAIK,首先哈希函数计算索引,压缩函数用于缩小范围。 当值插入到数组中时,不是压缩键(索引)那么只有重要的东西吗?
答案 0 :(得分:0)
如果我正确理解您的术语,则散列函数应适用于任何大小的数组,而压缩函数特定于当前大小。因此哈希函数可能返回相同的32位数,压缩将例如计算所述数的模数以知道要使用哪个数组索引。由于散列表的大多数实现在表更改时会动态收缩和增长,因此将两者分开是有意义的。