快速排序:
计数排序:
快速排序和计数排序都是稳定的算法。
如果存在这两个条件,为什么快速排序仍然比计算排序更好?
答案 0 :(得分:10)
排序并不总是比其他人“更好”。在某些情况下,出于以下原因,快速排序可能更受欢迎:
Quicksort已经到位,不像计数排序,它必须创建一些数组(例如使用更多内存)来完成它的工作。
看起来计数排序是O(n),但看看必须创建的中间计数数组。计数数组长度基本上是原始数组中最大和最小元素之间的差异。如果范围非常大,那么这个计数阵列非常庞大。例如,如果您的数组只有两个元素,但两个元素是1和9999999怎么办?并且必须处理这个计数数组(所有总和和计数的东西)。实际上,计数排序的运行时间是O(n + k),其中k是原始数组中最大和最小元素之间的差异。