求递归的方法:
替换,带入方法:
如:
可以猜测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^(谁他)的考研。