算法设计:递归

求递归的方法:

 

替换,带入方法:

如:

可以猜测O(nlgn),用cnlgn试一试,用数学归纳法。

替换的时候可以进行联想:

 

这个和上面的式子很像,可以猜测也是O(nlgn)。

 第二种猜想方法:缩小范围:

有时候证明到了最后擦了一点怎么办?可以减一个低阶项看看:

 

第一步的时候我们想证T(n)<Cn,结果整出来是Cn+1,那就没整出来,怎么办呢?我们可以证一下T(n)<cn-b.

cn-b更小了,但如果弄cn+b那就不是证不了T(n)=O(n)了吗,(定义要求T(n)<cn呀)

可以证cn-b。

注意:不要说cn+n=O(n)之类的。你要证到<cn才算,多了不行。

变量替换:

 

上面的方法都很有技巧,有固定套路吗?:

递归数法:

 

递归树是怎么一回事呢?:

 

有点复杂对不对?感觉这样更好理解:

 

Master定理方法:

注意:-谁他和+谁他不在log里面,是logb(a)整体加减。 

好难记,有没有直观一点的?:

 注意:因为原本的定理是有“谁他”的,这个大或者小不能是一般的大小。假如要比他小,还要是多项式的小(讲不清楚了,上图):

 还要经得起n^(谁他)的考研。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值