什么是桶排序的好哈希函数?

时间:2015-07-20 20:46:38

标签: algorithm sorting hash hash-function bucket-sort

首先,声称实施bucket sort的大多数地方实际上都在实施counting sort。我的问题是关于在Geek ViewpointWikipedia上实施的bucket sort。我不太喜欢/喜欢Geek Viewpoint上的哈希函数,而且我没有在维基百科上获得哈希函数。有人能解释一种更简单的方法来为桶排序创建一个好的哈希函数吗?普通人可以理解和记住的东西。

1 个答案:

答案 0 :(得分:2)

我不认为这是一个普遍好的哈希函数,这就是桶排序的问题。如果哈希产生大小相等的大小桶,则哈希很好,但这显然取决于您要排序的值的分布。这就是为什么当您具有分布的先验知识时,桶排序的工作原理非常好,例如,当您必须按人员的高度对人员记录进行排序时。

此外,最糟糕的情况是,排序不是计算排序,因为Geekview链接错误地建议。最坏的情况(关于时间复杂性)是所有元素进入同一个桶的时候。

当然,计数排序 是一种存储桶排序,特别是带有散列h(x) = x的存储桶排序。计算排序的不同之处在于,一旦你知道你的桶只能保持一个值,你就不需要桶来存储元素本身,只需要它们的数量。