【发布时间】:2012-05-01 15:05:01
【问题描述】:
我正在尝试了解复杂性分析以及如何从第一原理开始执行它。以 QuickSort 为例,我希望能够推导出该算法的平均情况复杂度的 O-notation 表达式。
我知道 QuickSort 是 O(nlog(n)) 并且我理解为什么,它必须在每次迭代中传递 n 个元素,并且递归深度是 log n。但我不知道你会如何用第一原理来展示这一点,即计算原始操作。
【问题讨论】:
-
+1 供 Cormen 参考。
-
但是关于从“第一原则”推导出复杂性。第一性原理不是意味着计算原始操作吗?
-
@Jim_CS:您不需要计算单个原始操作。每次迭代/递归是否有 10 个或 100 个操作都没有关系,只要该数字是恒定的即可。增长由迭代/递归的数量控制。
-
与其结束这个问题,我认为值得将维基百科参考放在答案中并投票。
标签: algorithm complexity-theory