算法导论 4.3-4

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值