什么是适合桶排序的哈希函数呢?



首先,大多数声称实现了bucket sort的地方实际上实现了counting sort。我的问题是关于在极客观点和维基百科上实现的bucket sort。我不太喜欢Geek Viewpoint上的哈希函数,也不喜欢维基百科上的哈希函数。有人能解释一个更简单的方法来创建一个好的哈希函数桶排序?一般人都能理解和记住的东西

我不认为有一个普遍好的哈希函数,这是桶排序的问题。如果生成大小大致相等的桶,那么散列是好的,但这显然取决于要排序的值的分布。这就是为什么当你对分布有一个先验知识时,桶排序工作得很好,例如当你必须根据人们的身高对他们的记录进行排序时。

此外,桶排序最坏的情况不是计数排序,正如Geekview链接错误地暗示的那样。最坏的情况(就时间复杂度而言)是所有元素都放到同一个桶中。

当然计数排序一种桶排序,特别是具有h(x) = x哈希值的桶排序。计数排序的不同之处在于,一旦您知道bucket将只保存单个值,您就不需要bucket来存储元素本身,而只需要存储它们的计数。

最新更新