任何人都了解哈希的质量?

时间:2011-07-27 05:04:26

标签: perl hash

哈希的“质量”定义为相对于随机哈希所需的预期数量,访问每个元素一次所需的比较总数。价值可以超过100%。

比较总数等于每个桶中条目数的平方和。对于“< n”>的随机散列键入“< k”>桶,期望值是:

n + n ( n - 1 ) / 2 * k

哈希的质量究竟是什么?

1 个答案:

答案 0 :(得分:4)

衡量哈希“均匀分布”的方式。理想情况下,散列函数会将所有内容放入其自己的存储桶中,但这不会发生,因为您不能拥有那么多存储桶(即使存在散列冲突,因此不同的值仍然会在同一个存储桶中结束)。

当你拥有包含许多元素的存储桶时,散列的性能(理想情况下只是一个存储桶并查看其中的单个元素)会降低:如果发生这种情况,则必须线性地遍历所有这些元素。

质量为100%是您对填充随机数据的哈希所期望的。在这种情况下,所有桶应该同样满。如果您的数据超过100%,则数据的散列不均匀,查找需要更多时间。