4分治

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/zhoutianzi12/article/details/99624411

4.0 开头

第一段

  • 2.3.1中介绍了归排
    • 他用了分治
  • 分治策略中:
    • 我们递归地求解一个问题
    • 每层递归中应用如下三个步骤:
    • Divide分解步骤将问题划分为一些子问题
      • 子问题形式与原问题一样,只是规模更小
    • (conqure)解决步骤递归地求解出子问题。
      • 如果子问题足够小,则停止递归,直接求解
    • 合并(Combine)将 子问题的解组合成原问题的解

第二段

  • 子问题大时,需递归求解,称为递归情况。
    • 当子问题变小,不需递归时,说递归已触底,进入基本情况。
    • 有时,除了与原问题形式一样的更小的子问题外
    • 还需求解与原问题不完全一样的子问题
      • 将这些子问题看作合并步骤的一部分

第三段

  • 本章中将看到更多基于分治策略的算法。
  • 求解最大子数组问题
    • 输入一个数值数组
    • 需确定具有最大和的连续子数组
  • 两个 n × n n\times n 矩阵乘法的分治算法
    • 一个运时 Θ ( n 3 ) \Theta(n^3) ,不优于平凡算法
    • 另一Strassen算法 运时 Θ ( n 2.81 ) \Theta(n^{2.81})
      • 渐进时间复杂性击败平凡算法

递归式

  • 递归式与分治方法是紧密相关的
  • 使用递归式可以很自然地刻画分治算法的运行时间
  • 如2.3.2节,用下面描述MERGE-SORT过程的最坏运行时间为 T ( n ) T(n)
    (4.1) T ( n ) = { Θ ( 1 ) n = 1 2 T ( n / 2 ) + Θ ( n ) n 2 T(n)=\left\{ \begin{aligned} \Theta(1) & 若n=1\\ 2T(n/2)+\Theta(n)& 若n\ge 2 \\ \end{aligned} \right. \tag{4.1}
    T ( n ) = Θ ( n l o g n ) 求得T(n)=\Theta(nlogn)
  • 递归式可以有很多形式
    • 如可将问题划分为2/3和 1/3
    • 如果分解和合并步骤都线性时间
    • 则有 T ( n ) = T ( 2 n / 3 ) + T ( n / 3 ) + Θ ( n ) T(n)=T(2n/3)+T(n/3)+\Theta(n)
  • 子问题不必是原问题的一个固定比例。
    • 如线性查找的递归版本(练习2. 1-3)仅生成一个子问题,
    • 仅比原问题的规模少1
    • 每次递归调用将花费常量时间
      • 再加上下一层递归调用的时间,
    • 递归式为 T ( n ) = T ( n 1 ) + Θ ( 1 ) T(n)= T(n -1)+\Theta(1)

三种求解递归式的方法

  • 介绍三种求解递归式方法,即得出算法的“ Θ \Theta ”或“ O O ”渐近界的方法:

  • 代入法: 猜一个界,然后用数学归纳法证明这个界正确。

  • 递归树法: 将递归式转为棵树,

    • 结点表示不同层次的递归调用产生的代价。
    • 然后用边界和技术来求解递归式。
  • .主方法: 求下面公式的递归式的界:
    (4.2) T ( n ) = a T ( n / b ) + f ( n ) T(n) = aT(n/b) + f(n)\tag{4.2}

    • 它刻画了一个分治算法生成 a a 个子问题,
      • 子问题都是原问题的 1 / b 1/b ,
      • 分解和合并总共花费时间为f(n)
    • 为用主方法,要熟记三情况
      • 掌握此法, 确定很多简单递归式的渐近界就很easy。
    • 本章用主方法确定
      • 最大子数组和矩阵相乘的分治算法的运时
      • 书中其他用分治策略也用主方法分析
    • 有时也会遇到不等式的递推哦

递归式技术的细节

  • 会略取向下取整,边界条件等

4.1 最大子数组问题

获得投化学公司

暴力求解方法

4.2 矩阵乘法的Strassen算法

4.3 用代入法求解递归式

4.4 用递归树方法求解递归式

4.5 用主方法求解递归式

4.6 证明主定理

猜你喜欢

转载自blog.csdn.net/zhoutianzi12/article/details/99624411