什么是大的o T(n)= T(n / 2)+ cn
我知道mergesort情况T(n)= 2T(n / 2)+ cn即线性
并且我能够解决T(n)= 2T(n / 2)+ c以获得线性但在第一个中感到困惑...
答案 0 :(得分:1)
第一个应该很简单:
T(n) = T(n/2) + cn = T(n/4) + cn/2 + cn = T(n/8) + cn/4 + cn/2 + cn
= T(1) + c(n/2^m + ... + n/4 + n/2 + n)
<= T(1) + c(n + n/2 + n/4 + n/8 + ...) = 2cn + T(1)
m = log(n)
。
因此就大写符号而言T(n) ~ O(n)
。
T(n) = T(n/2) + cn = T(n/4) + cn/2 + cn = T(n/8) + cn/4 + cn/2 + cn
= T(1) + c(n/2^m + ... + n/4 + n/2 + n)
>= T(1) + c(n/2 + n/4 + n/8 + ...) = cn + T(1)
因此T(n)
实际上是n的theta,因为n的大o和大ome。