算法设计与分析复习01:主方法求递归算法时间复杂度

算法设计与分析复习01:主方法求递归算法时间复杂度

文章目录

  • 算法设计与分析复习01:主方法求递归算法时间复杂度
    • 复习重点
    • 算法复杂度分析——主方法
      • 例题1:
      • 例题2:
      • 例题3:

复习重点

算法设计与分析复习01:主方法求递归算法时间复杂度_第1张图片

算法复杂度分析——主方法

T ( n ) = a T ( n b ) + f ( n ) T(n)=aT(\frac{n}{b})+f(n) T(n)=aT(bn)+f(n)

  • 其中 a≥1b>1 是常数, f(n) 是渐进函数 。
  • 上述递归式描述的是这样一种算法的运行时间:
    • 它将规模为 n 的问题分解为 a 个子问题 每个子问题规模为 n b \frac{n}{b} bn ,其中 ab 都是正常数。
    • a 个子问题递归地进行求解,每个花费时间 T(n/b) 。
    • 函数 f(n) 包含了问题分解和子问题解合并的代价 。
    • 其中 n b \frac{n}{b} bn n b \frac{n}{b} bn 的上取整或者是下取整,对结果不会造成影响。

算法设计与分析复习01:主方法求递归算法时间复杂度_第2张图片

算法设计与分析复习01:主方法求递归算法时间复杂度_第3张图片

例题1:

算法设计与分析复习01:主方法求递归算法时间复杂度_第4张图片

例题2:

算法设计与分析复习01:主方法求递归算法时间复杂度_第5张图片

例题3:

算法设计与分析复习01:主方法求递归算法时间复杂度_第6张图片

你可能感兴趣的:(算法,算法,人工智能)