C-为什么快速排序比计数排序更好



快速排序:

  • 最坏的情况o(n^2)
  • 平均情况o(nlogn)

计数排序:

  • 在所有情况下o(n)

快速排序和计数排序都是稳定的算法。

如果存在这两个条件,为什么快速排序比计数排序还要好吗?

类型并不总是比彼此更好。在某些情况下,由于多种原因,QuickSort可能是首选的:

  1. QuickSort已经到位,与计数排序不同,它必须创建许多数组(例如使用更多内存)来完成其工作。

  2. 似乎计数排序是o(n),但是看一下必须创建的中间计数数组。计数阵列长度本质上是原始数组中最大和最小元素之间的差异。如果范围真的很大,则计数阵列将很大。例如,如果您的数组只有两个元素,但是两个元素是1和9999999?而且必须处理此计数阵列(所有总结和计数内容)。因此,实际上,计数排序的运行时间是O(n K),其中k是原始数组中最大和最小元素之间的差异。

  3. 最后,如果您要排序的元素不是数字,那么计数排序似乎很难实现。它如何适用于字符串?

相关内容

  • 没有找到相关文章

最新更新