zoukankan      html  css  js  c++  java
  • 算法设计与分析——分治递推关系的解

    本节主要研究一些专门用来求解最常见的分治递推式的技巧。(代入法、更换变元法暂且不记录)

    1、展开递推式

    求解递推式的最自然方法就是通过显而易见的方式将其反复展开。

    (1)、例子

    image.png

    image.png

    O(n)取法:①忽略低阶项 ②舍最高项常系数 ③剩余估计

    本例中,O(n)=nlog2 n

    (2)、定理

    由上例f(n)可得以下定理

    image.png

    (3)、引理

    对于不同的f(n),我们可以得出不同的递推式

    image.png

    以上引理证明如下:

    image.png

    image.png

    (4)、推论

    由上述引理,我们可以得出以下两个推论

    image.png

    image.png

    (5)、最重要的定理

    背下该定理对于后期解题有很大帮助!

    image.png

    2、例题

    (1)、例一

    image.png

    (a)

    image.png

    (b)

    由master定理,a=4,c=2

    显然,f(n)=O(n2),与展开递推式所得一致。

    (2)、例二

    image.png

    (a)

    求解法与例一一致。

    (b)

    由master定理,a=5,c=3

    显然,f(n)=O(nlog35)。

    (3)、例三

    image.png

    (a)

    求解法与例一几乎一致。

    (b)

    由master定理,a=9,c=3,x=2

    显然,f(n)=O(n2 log n)

  • 相关阅读:
    CSP2018-09
    CSP2018-03
    CSP2017-12
    CSP2017-09
    CSP2017-03
    CSP2016-12
    [算法设计与分析] 奶酪 (并查集)
    5555
    阿超
    结对作业
  • 原文地址:https://www.cnblogs.com/wangzheming35/p/15724667.html
Copyright © 2011-2022 走看看