已知T(n)=2T(n/2)+n,求O(n)?

已知T(n)=2T(n/2)+n;求O(n)?

总结网上的归纳,自己再写一遍:

T(n)=2T(n/2)+n                                第一次,即k=1

T(n/2)=2T((n/2)/2)+n/2                        第二次,即k=2

T((n/2)/2)=2T(((n/2)/2)/2)+(n/2)/2            第三次,即k=3

即:
T(n/20)=2T(n/21)+n/20 第一次,即k=1,t=2 ①
T(n/21)=2T(n/22)+n/21 第二次,即k=2,t=4 ②
T(n/22)=2T(n/23)+n/22 第三次,即k=3,t=8 ③

③式带入②式得:T(n/2)=2(2T(n/23)+n/22)+n/21=22T(n/23)+n ④;
②式代入①式得:T(n)=2(22T(n/23)+n)+n=23T(n/23)+3n ⑤;

三式得出T(n)=23T(n/23)+3n ⑤,故当有k个式子,且最后一个的式子表达是T(2)=2T(1)+2的时候,⑤式中的次幂3可换为k,即T(n)=2kT(n/2k)+kn ⑥,而这中间使2k=n,才得最后一个表达式代入总式内故得T(n)=2kT(1)+kn ⑦

此时解开⑦式便可。
∵2k=n
∴k=log2n
∴T(n)=n+nlog2n

∴O(n)=nlog2n

  • 8
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值