算法复习求解递归式的方法

Posted hithongming

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法复习求解递归式的方法相关的知识,希望对你有一定的参考价值。

 

求解递归式的方法

【代入法】

  • 代入法求解分为两步:
    • 猜测解的形式
    • 用数学归纳法求出解的常数C,并证明正确性,关键步骤是用猜测的解代入到递归式中。
  • 做出好的猜测(没有一般方法,只能凭经验)
    • 与见过的解类似,则猜测之。技术分享图片
    • 先证较宽松的上、下界,减小猜测范围。我们可以从下界Ω(n)开始,上界O(n^2),然后逐渐收敛至(nlog2n)
  • 细节修正
    • 有时猜测解是正确的,但数学归纳法却不能直接证明其细节,这是因为数学归纳法不是强大到足以证明其细节。
    • 这时可从猜测解中减去一个低阶项以使数学归纳法得以满足
  • 避免陷阱
    • 与求和式的数学归纳法类似,证明时渐近记号的使用易产生错误。
    • 如:证明O(n)时必须严格证明≤cn,不能讲其换做cn+n
  • 变量变换
    • 有时改动变量能使未知递归式变为熟悉的式子。例如:
    • 技术分享图片

【代入法例题】

技术分享图片

技术分享图片

技术分享图片

技术分享图片

 

【递归树法】

  • 递归树最适合用来生成好的猜想,然后可用代入法来验证猜测是否正确
  • 需要关注:
    • 达到边界条件所需的迭代次数
    • 迭代过程中的和式。若在迭代过程中已估计出解的形式,亦可用代入法

技术分享图片

 

 【递归树法例题】

技术分享图片

 

【Master原理】

  •  Master定理也叫主定理。它提供了一种通过渐近符号表示递推关系式的方法。应用Master定理可以很简便的求解递归方程。

 

定理4.1(主定理) 令a≥1和b>1是常数,f(n)是一个函数,T(n)是定义在非负整数上的递归式:

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

其中我们将n/b解释为技术分享图片。那么T(n)有如下渐近界:

  技术分享图片

主定理的三种情况,经过分析,可以发现都是把f(n)与技术分享图片比较。

第一种情况是技术分享图片更大,第二种情况是技术分享图片 与f(n)相等,第三种情况是f(n)更大。

 

【主定理例题】

 技术分享图片

技术分享图片

 

以上是关于算法复习求解递归式的方法的主要内容,如果未能解决你的问题,请参考以下文章

主定理 推导

分治策略(求解递归式的方法)

算法分析基础

算法复习

算法复习分治算法动态规划贪心算法

算法复习-研一上