1 题目
主方法能否应用于递归式T(n)=4T(n/2)+n2 lgn?为什么?给出此递归式的渐近上界。
2 分析与解答
nlogb a=n2,所以f(n)比较大,但是f(n)/n2=lgn渐近小于nε ,所以f(n)不是多项式大,所以不能用主定理。
使用替换法找T(n)的渐近上界,尽管f(n)不是T(n)的渐近确界,但是由于它比较大,我们猜测T(n)的渐近上界由他决定,所以猜测T(n)=O(n2 lgn)。
证明:若猜测正确,有T(n) <= cn2 lgn,代入递归式有:
T(n)<=4c(n/2)2 lg(n/2) + n2 lgn = cn2 lgn - cn2 + n2 lgn;
显然n2 lgn - cn2 在n足够大的情况下,总是大于0的,所以是不能证明渐近上界的。因此我们把渐近上界扩大,猜测T(n)=O(n2 lg2 n),代入递归式有:
T(n)<=4c(n/2)2 lg2 (n/2) + n2 lgn = cn2(lgn - 1)2 + n2 lgn = cn2 lg2 n -((2c - 1)n2 lg n - cn2);
从式中可见,只要2c-1 >= c,即c>=1,那么就有当n>=2时,(2c - 1)n2 lg n - cn2 >=0,此时就有T(n) <= cn2 lg2 n;
我们取c=1,n0 =2,那么就存在c和n0 ,当n>=n0 时,T(n)<=cn2 lg2 n;也就是T(n)=O(n2 lg2 n)