算法复杂度



这真的是2个很牛叉的算法分析方法,你可以用主方法瞬间估算出算法的复杂度

Master Method 

T(n) = aT(n/b)+h(n)

a >=1 ; b >1 ; h(n) : 不参与递归的复杂度函数

判断n^log (a)与h(n)的大小关系

= Θ(h(n)) :该方法的复杂度为   Θ(h(n)*lg(n))

> Θ(h(n)) :该方法的复杂度为   Θ(n^(log a/log b))

< Θ(h(n)) :该方法复杂度为 Θ(h(n))

这样可以帮助你快速的分析出你得算法的复杂度是否符合要求。





考研题,求时间复杂度,请说明下理由,
假定问题规模为N时,某递归算法的时间复杂度记为T(N),已知T(1)=1,T(N)=2T(N/2)+N/2,用O表示的时间复杂度为()
A O(N) B O(NlogN) C O(N²) D O(N²logN)
数学
萌伊6342014-09-26


已知算法A的运行时间函数为T(n)=8T(n/2)+n2,其中n表示问题的规模,则该算法的时间复杂度为(  )。另已知算法B的运行时间函数为T(n)=XT(n/4)+n2,其中n表示问题的规模。对充分大的n,若要算法B比算法A快,则X的最大值为(  )。

A.θ(n)
B.θ(nlgn)
C.θ(n2)
D.θ(n3)

A.15        
B.17          
C.63      
D.65

答案:D 、C

2条回答
老师好,第二问是怎么算的,谢谢
springfield     2016-03-05        
评价(0) (0) (0) 引用

第二问b=4,这时候把四个选项代进去,可以得到log4(63)<log4(64)=3,是小于log2(8)=3的,代入第一问给的三种情况的第三种,这时候复杂度会小于前面的式子。

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值