对于下面的重复,我发现了Big-O复杂度O()。
T(n) = 2 T(n / 2) + c n
T(1)= C1
我猜测它的T(n)= O(n)。
归纳假设: T(n)< = a k对于所有k< n。
T(n)= 2T(n / 2)+ c * n
T(n)< = 2(a *(n / 2))+ c * n
< = a n + c n
= O(n)的
我发现它完全正确,但我的TA在这个评分为0,你认为我哪里出错?
答案 0 :(得分:1)
所谓的Master Theorem案例2指出
T(n) = O(n)
为您的例子。此外,如果a
为真,则Quicksort(满足上述递归关系)将具有线性运行时复杂性,但情况并非如此。
关于你的论点,显然你声明存在一个T(n) <= a*n
常数
T(k) <= a*k for each k < n
成立。因此,归纳假设应该如下。
T(n) <= (a+c)*n
但即使假设这一点,诱导步骤也证明了
T(n) <= a*n
成立;但是,这不证明了所需的属性,因为不证明
{{1}}
成立。