算法导论 4.1-2

问题

证明 的解为O(nlgn)。证明这个递归的解也是Ω(nlgn)。得到的解为Θ(nlgn)

分析

证明:假设递归式的解为O(nlgn),则
所以
所以当c>=1时,T(n)<=cnlgn,即T(n)=O(nlgn)

假设递归式的解也是Ω(nlgn),则
所以存在n0和c,当n>=n0时,T(n)>=2c(n/2-1)lg(n/2-1)+n=c(n-2)lg(n-2)+(1-c)n+2c>=c(n-2)lg(n-2)+(1-c)n
上式不能证明递归式的解是Ω(nlgn),我们改变猜测,使递归式的解是 Ω(nlg(n+2))
这样可得T(n)>=cnlg(n+2)-2clg(n+2)-cn+2c+n>=cnlg(n+2)+(1-c)n-2clg(n+2)
因为lg(n+2)<=lg(n*n)=2lgn,所以T(n)>=cnlg(n+2)+(1-c)n-4clgn
因为多项式函数比指数函数增长的快,所以只要1-c>=0,那么必然存在n1,当n>=n1时, (1-c)n-4clgn>=0,即此种情况下T(n)=Ω(nlg(n+2))
又因为nlg(n+2) > nlgn,所以nlg(n+2)=Ω(nlgn)。由传递性的T(n)=Ω(nlgn)
T(n)=O(nlgn)和T(n)=Ω(nlgn),可得T(n)=Θ(nlgn)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值