美文网首页
分治策略(求解递归式的方法)

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

作者: 技术创造未来 | 来源:发表于2021-06-22 19:06 被阅读0次

    一、主定理:

    主定理是最好用的方法,书本上以”菜谱“来描述这种方法的好用之处,它可以瞬间估计一个递推式的算法复杂度。

    优点:针对形如T(n) = af(n/b) + f(n)的递归式

    缺点:并不能解所有上述形式的递归式,有一些特殊情况,见下文分析。

    分析:三种情况,如下图,着重看圈线的部分:


    主定理.png

    注意:1.ε符号,是在log之外。比log差一个常数量级ε。
    2.条件是f(n),结果是T(n)。

    例题:求解递推方程
    T(n) = 9T(n/3) + n
    T(1) = 1
    解答:
    由主定理T(n) = aT(n/b) + f(n)得:
    a = 9
    b = 3
    f(n) = n
    ∵ 代入主定理 f(n) = n^㏒₃9 = n²
    又∵ f(n) = n. 当 ε = 1 时,f(n) = Ο(n^(2 - ε )) = Ο(n¹) = Ο(n)
    此时,T(n) = Θ (n^㏒₃9) = Θ(n²)

    二、递归树


    image.png

    举个例子:

    T(n) = T(n/3) + T(2n/3) + n

    其递归树如下图所示:


    image.png
    image.png

    例题:求解递推方程
    T(n)=T(n/2)+T(n/4)+cn

    参考:
    https://www.cnblogs.com/aademeng/articles/7044312.html
    https://www.cnblogs.com/dear_diary/p/6851936.html
    《算法设计与分析》-屈婉玲

    相关文章

      网友评论

          本文标题:分治策略(求解递归式的方法)

          本文链接:https://www.haomeiwen.com/subject/hzcmyltx.html