基数排序是唯一的非比较排序算法吗?

时间:2011-05-12 20:22:23

标签: algorithm sorting radix-sort radix

正如标题所说,radix sort是唯一的非比较排序算法吗?我的猜测是肯定的。

2 个答案:

答案 0 :(得分:6)

不 - 除了其他之外,还计算排序和桶排序。查看Wikipedia article了解详情。

答案 1 :(得分:1)

可以通过不使用比较来对任何集合进行排序。

这个过程是

  • 决定您可以处理的可管理大小的输入域M,以便在可管理的阵列中进行记录。对于字符(8位),域名将为0-255。
  • 以有序的方式将输入拆分为数组。
  • 如果仍未完全考虑输入,则
  • 重复并冲洗,即未考虑M中的所有位。

例如,32位,M,整数排序可以执行为:

  • 在8位范围内查看前8位,put(引用,指针或lang可用的内容)。把它们放在一个数组[0-255]中,现在你有一个粗略的(球场)排序你的值。
  • 查看接下来的8位,将它们放在类似的数组中,保留对第一个排序的引用。 下一个8x2位的处理方式相同。要提取您,请按照第一组中的链接进行操作。

基数排序使用数字并有2个变体,(MSB到LSB)和(LSB到MSB)。

计数排序仅使用第一步

当提到计数和比较排序的混合时,通常会提到存储桶排序。

有趣的是,对于相当多的用例,比较分类很短。