algorithm - 从第一性原理分析 QuickSort 的复杂性

标签 algorithm complexity-theory

我正在尝试学习复杂性分析以及如何根据第一性原理进行分析。以QuickSort为例,我希望能够推导出该算法的平均情况复杂度的O符号表达式。

我知道 QuickSort 是 O(nlog(n)) 并且我理解为什么它必须在每次迭代时传递 n 个元素,并且递归深度是 log n。但我不知道你如何用第一原理来证明这一点,即计算原始操作。

最佳答案

Knuth,在计算机编程艺术,第 3 卷(排序和搜索),第 5.2.2 节(按交换排序)中,详分割析了快速排序的具体实现(在 MIX 中, 当然)。他可能是世界上唯一愿意为人类消费而手动进行此类分析的人。

关于algorithm - 从第一性原理分析 QuickSort 的复杂性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10399641/

相关文章:

algorithm - 考虑时间复杂度时,什么被视为三次算法?

time-complexity - 运行时间计算

javascript - 创建长度为 n 的数组,除了索引符​​合特定条件的值之外,将所有值初始化为 0,时间复杂度为 O(1)?

algorithm - 如何绕任意轴旋转?

algorithm - 如何计算两个轴承之间的最小旋转

c# - 使用傅立叶级数或其他算法通过给定值重建函数

java - 将小数转换为另一种基数的时间复杂度

java - BigInteger.pow 和 BigInteger.isProbablePrime 的复杂度是多少?

.net - 这些算法中哪一个在生成 1..n 范围内的 N 个唯一随机数的性能和顺序方面更好?

algorithm - 如何通过 PICAXE 14M2 控制占空比来保持直流电机速度(闭环反馈)