递归求解

 

这是网易公开课麻省理工学院算法导论的笔记,主要讲了几种渐进符号, O, Θ,o, ω,Ω的意义。

这里重点想分享的是递归算法的听课笔记。

递归算法常见三种算法:代换法,递归树算法和主定理

1、代换法(substitutionmethod):

   主要分为三个步骤:

1)   猜测形式。并不需要很确切,只要大致是上界就可以,系数之类只用常数c代替就可以

2)   带入求证。把猜测的形式带入,能否证的最终的上界,不能的话重新猜测

3)   确定系数

Ex: T(n) = 4* T(n/2)+ n,猜测是不是以n3为上界, 假设答案为c*n3,带入, T(n)<=c n3 + n

                      =cn3-(cn3-n)

<cn3

所以可以确定O(n3)是一个上界,进一步精确看n2行不行

2、递归树(recursion tree):

这个方法比较直观简单,容易理解,在归并排序的时候见过。举个例子好了 T(n) = T(n/4)+T(n/2)+


因为第一次分 n/4 + n/2 = 3n/4 <n

所以最终的叶子节点个数严格小于n , 最终由等比数列求和可知T(n)<2*

补充一点, t(n) = at(n/b)+f(n)的递归树树高 logb(n);

 

 

3、主定理(mastermethod):

这个方法受限制比较多,但是非常常用,因为方便

要记忆的东西比较多,主要是适用于形如 T(n) = aT(n/b)+f(n), a>=1; b>1;f(n)渐进趋正(对特定n0, 任意 n>=n0, f(n)>0)

解有三种形式,取决于 f(n)与 (log 以b为底,a)

 

EX:

T(n)= 4T(n/2)+n  a = 4  b = 2 f(n) = n,符合case1 Θ(n2);

T(n)= 4T(n/2)+n2  符合case2,T(n) = Θ( )  (以2为底)

F(n)= n3 时符合case3

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值