算法导论 第4章 分治策略(2)

算法导论 第4章 分治策略(2)

代入法求解递归式

代入法求解递归式的步骤:

  1. 猜测解的形式
  2. 用数学归纳法求出解中的常数,并证明解正确

如对递归式:

猜测其解为T(n)=O(nlgn),代入法要求证明恰当选择常数c>0,可有T(n)<=cnlgn。假定此上届对所有m < n成立,代入得到:

其中只要c>=1,最后一步即成立。注意到对n=1,边界条件T(1)<=c1lg1=0与T(1)=1矛盾,对于这种情况可以修改归纳证明中的基本情况,换为T(2)或T(3)即可。

递归树方法求解递归式

对于代入法,有时想到一个好的猜测比较困难。在递归树方法中,递归树的每个节点表示一个单一子问题的代价,将树中的代价求和即可得到递归调用的总代价,适合用来生成好的猜测,并用代入法验证。

对于递归式:

构造递归树:

整个递归树共有log4n+1层,其中第i层由3<i个节点,每个节点的代价为c(n/4i)2,所以整棵树代价之和为:

计算过程中利用了一定程度的不精确,推导出一个猜测T(n)=O(n2)。接下来即可利用代入法证明猜测正确:

当d>=(16/13)c时推导成立。

主方法求解递归式

主方法专门用于求解这种形式的递归式:

主定理:令a>=1和b>1是常数,对于定义在非负整数的函数T(n)=aT(n/b)+f(n),T(n)由如下渐近界:

如对于递归式:

a=9,b=3,f(n)=n,nlogba=Θ(n2),有f(n)=O(nlog39-ε),ε=1,对应情况1,得到解T(n)=Θ(n2)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值