我正在尝试使用替换方法解决重现问题。递归关系是:
T(n)= 4T(n / 2)+ n 2
我的猜测是T(n)是Θ(nlogn)(我确信它是因为主定理),并且为了找到上限,我使用归纳法。我试图证明这一点 T(n)< = cn 2 logn,但这不起作用。
我得到T(n)&lt; = cn 2 logn + n 2 。然后我试图表明,如果T(n)&lt; = c 1 n 2 logn-c 2 n 2 < / sup>,那么它也是O(n 2 logn),但这也没有用,我得到T(n)&lt; = c 1 n < SUP> 2 的log(n / 2)-c <子> 2 子>名词 2 + N 2 `。
如何解决此问题?
答案 0 :(得分:6)
T(n) = 4T(n/2) + n2 = n2 + 4[4T(n/4) + n²/4] = 2n2 + 16T(n/4) = ... = k⋅n2 + 4kT(n/2k) = ...
当2k
到达n
时,此过程停止
⇒k = log2n
⇒T(n) = O(n2logn)
答案 1 :(得分:4)
您可以用非递归形式重写等式
你的递归方程非常简单:每次展开T(n / 2)时,只会出现一个新术语。因此,在非递归形式中,您将得到一系列二次项。你只需要表明A(n)是log(n)
(我把它留给你作为一个简单的练习)。