algorithm - Θ(n lg n) 中的快速排序

标签 algorithm sorting code-analysis quicksort

<分区>

这是一个以程序员为生的人的问题 -
我刚刚证明(使用主定理)如果我们使用快速排序并且我们选择枢轴作为我们正在分区的子数组的中位数(使用具有 Θ(n) 最坏情况运行时间的中位数算法)那么最坏的case quicksort 的运行时间是 Θ(n lg n) - 所以基本上这意味着这个版本的 quicksort 已经尽可能好了。

我现在的问题是 - 有没有人在实践中实现这样的快速排序?或者它只是那些在现实生活中实际上并不好的理论中的一个?

PS - 我不需要证明我所说的内容,我只想知道这是否广为人知/有用

最佳答案

这是已知的(参见 wikipedia 条目),但由于在实践中最坏的情况相对较少,因此通常认为 O(N) 选择算法在一般情况下增加的开销是 Not Acceptable 。

关于algorithm - Θ(n lg n) 中的快速排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16385550/

相关文章:

python - Dijkstra 算法的多个输入

python - 试图减少 python leetcode 问题中的运行时间

ios - 是否无法使用 NSSortDescriptor 按 BOOL 属性排序?

python - 给定并行列表,如何在对一个列表进行排序的同时以相同的方式排列(重新排列)另一个列表?

Javascript代码依赖分析工具

javascript - 如何解析纯函数

refactoring - 哪篇文章讨论了 "Viewing code from 10000 feet"?

algorithm - 递归的复杂度 : T(n) = T(n-1) + T(n-2) + C

algorithm - n/2 时间复杂度值得吗?

algorithm - 如何创建一个随机的吃 bean 人迷宫