存储桶排序和计数排序的方案

时间:2013-03-22 10:33:58

标签: c++ algorithm sorting

这让我困惑了一段时间。我想知道应该使用桶式排序的场景 过度计数(或反之亦然)。

1 个答案:

答案 0 :(得分:1)

这两个页​​面提供了两种排序的一些信息。

关于计算排序:

  

因为计数排序使用键值作为数组的索引,所以它是   不是比较排序,Ω(n log n)下限用于比较   排序不适用于它。1存储桶排序可用于许多   与计数排序相同的任务,具有类似的时间分析;   但是,与计数排序相比,桶排序需要链表,   动态数组或大量预先分配的内存来保存   每个桶中的项目集,而计数排序而不是存储   每桶的单个数字(项目数)。[4]

关于水桶分类:

  

铲斗排序可以看作是计数排序的概括;事实上,   如果每个桶的大小为1,则桶排序退化为计数   分类。铲斗排序的可变铲斗大小允许它使用O(n)   内存而不是O(M)内存,其中M是不同的数量   值;作为交换,它放弃了计数排序的O(n + M)最坏情况   行为。