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

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

作者: 技术创造未来 | 来源:发表于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
《算法设计与分析》-屈婉玲

相关文章

  • 分治策略

    求解递归式方法 最大子数组问题 分治策略 分治法流程 伪代码 C++实现 线性解 流程 代入法求解递归式 递归树法...

  • 算法(2)-递归式时间复杂度求解与分治法

    要点 递归式T(n)求解代换法*迭代法*递归树主定理 Master (core) 分治策略Insert Sort ...

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

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

  • 快速入门分治算法

    核心:掌握主方法求解递归关系式 分治算法 本质其实就是将一个问题分解为若干个规模较小的相同子问题,分而治之。 解题...

  • 「算法原理与实现」用主方法求解递归式

    主方法求解递归式 主方法为如下形式的递归式提供了一种通用的解法: T(n) = aT(n/b) + f(n) 其中...

  • 0x01 分治法

    1、分治策略分治法是采用分而治之,逐个解决的策略。孙子兵法曰:凡治众如寡者,分数是也。 采用分治求解的问题必须具有...

  • 分治算法

    分治策略 分解:将问题划分为一些子问题,子问题的形式与原问题一致,只是规模更小 解决:递归求解子问题,如果子问题规...

  • 浅析递归算法

    递归定义:重复将问题分解为同类的子问题而解决问题的方法,其核心思想是分治策略。 递归算法简单来说就是自己调用自己。...

  • 计算1到100的和

    利用递归求解 用 最笨的方法求解: 用python牛逼的sum求解: 用奇偶相加求解:

  • 常见的算法策略:递归算法与分治策略

    递归与分治策略是五大常见算法策略之一,分治策略的思想就是分而治之,即先将一个规模较大的大问题分解成若干个规模较小的...

网友评论

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

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