观察复发主定理的三个案例。然后它总是返回一个theta。
这让我觉得这是否意味着它只能找到具有theta的函数的运行时间?
如果是,那么约束a> = 1且b> 1确保重现具有θ?
例如,可以使用Mergesort the Master定理的重现,但是对于Quicksort的重复,它不能,因为Quicksort没有theta但只有Omega和大O变化。这是怎么回事?
答案 0 :(得分:2)
主定理只是告诉你T(n) = a * T(n/b) + f(n)
形式重现的复杂性。这与算法无关。它只是一个数学表达式,如果您知道a
,b
和f
,则可以对其进行精确评估。因此它也具有由Θ
表示的精确复杂性。
“具有theta的功能”也没那么有意义。函数/算法具有复杂性,并且这种复杂性可以用一个或多个输入参数表示。您可以为每种算法分析许多不同的复杂性:最坏情况,最佳情况,平均情况,平滑复杂性以及更多。这些复杂性可以具有上限和下限,有时上限和下限是相同的。可以使用big-O表示法简化此边界。
所以要将它翻译成你的Quicksort例子:
它的最差情况为O(n²)
,最佳情况为Ω(n log n)
,平均情况为Θ(n log n)
(如果您选择以正确的方式转动)。