Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 基数排序是唯一的非比较排序算法吗?_Algorithm_Sorting_Radix Sort_Radix - Fatal编程技术网

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

Algorithm 基数排序是唯一的非比较排序算法吗?,algorithm,sorting,radix-sort,radix,Algorithm,Sorting,Radix Sort,Radix,正如标题所说,基数排序是唯一的非比较排序算法吗?我的猜测是肯定的。不-还有计数排序和桶排序等。查看以了解更多信息。任何集合都可以通过不使用比较进行排序 过程是 确定可管理的输入域M的大小,以便在可管理的数组中进行记录。对于字符(8位),域将是0-255 以某种有序的方式将输入拆分到数组中 如果仍未完全考虑输入,即未考虑M中的所有位,则重复并冲洗 例如,32位M整数排序可按以下方式执行: 查看前8位,将(引用、指针或lang提供的内容)放在8位范围内。把它们放在一个数组[0-255]中,现在

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

不-还有计数排序和桶排序等。查看以了解更多信息。

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

过程是

  • 确定可管理的输入域M的大小,以便在可管理的数组中进行记录。对于字符(8位),域将是0-255
  • 以某种有序的方式将输入拆分到数组中
  • 如果仍未完全考虑输入,即未考虑M中的所有位,则重复并冲洗
例如,32位M整数排序可按以下方式执行:

  • 查看前8位,将(引用、指针或lang提供的内容)放在8位范围内。把它们放在一个数组[0-255]中,现在你有了一个粗略的(大概的)值排序
  • 查看接下来的8位,将它们放在一个类似的数组中,保留对第一个顺序的引用。 下一个8x2位的处理方式相同。要提取,请按照第一组中的链接进行操作
基数排序使用数字,有两个变体(MSB到LSB)和(LSB到MSB)

计数排序只使用第一步

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


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

不比较是什么意思?所有排序都必须进行比较,除非每个桶中的项不超过一项。@Loadmaster:名称有点误导性-它的意思是不进行原子级比较的排序。意大利面条排序(如果有合适的硬件可用)…睡眠排序也被认为是非比较性的,我想。。。