代入法

substitution method

  1. Guess the from of the solution
  2. verify by induction
  3. solve the consts

example

T(n)=4T(n/2)+nT(n) = 4T(n/2) + nT(n)=4T(n/2)+n
[T(1)=Θ(1)][T(1) = \Theta(1)][T(1)=Θ(1)]

—Guess: T(n)=O(n3)T(n) = O(n^3)T(n)=O(n3)
—Assume: T(k)≤ck3,fork<nT(k) \leq ck^3, for \:k < nT(k)≤ck3,fork<n

—T(n)=4T(n/2)+n≤4c(n/2)3+nT(n) = 4T(n/2)+n \leq 4c(n/2)^3+nT(n)=4T(n/2)+n≤4c(n/2)3+n
=c2n3+n=\frac{c}{2}n^3+n=2c​n3+n
=cn3−(c2n3−n)=cn^3-(\frac{c}{2}n^3 - n)=cn3−(2c​n3−n)
≤cn3\leq cn^3≤cn3, 当且仅当(c2n3−n)≥0(\frac{c}{2}n^3 - n) \geq 0(2c​n3−n)≥0. example: ∃c≥1,n≥2\exists \: c \geq 1, n \geq 2∃c≥1,n≥2

Base case, T(1)=Θ(1)≤cT(1) =\Theta(1) \leq cT(1)=Θ(1)≤c, 只要ccc足够大即可满足。

由此,可以看到T(n)=O(n3)T(n)=O(n^3)T(n)=O(n3)是成立的。
直观上来看,按照渐进趋势,当nnn趋于无穷大时,∃somecs.t.(c2n3−n)≥0\exists \:some \:c \: s.t.\: (\frac{c}{2}n^3-n)\geq 0∃somecs.t.(2c​n3−n)≥0成立。证毕。

鉴于此,我们可以看到,要使上述归纳成立,则余数(c2n3−n)≥0(\frac{c}{2}n^3-n)\geq 0(2c​n3−n)≥0,且为常数比较好。因此,再次猜测如下:
—Guess: T(n)=O(n2)T(n) = O(n^2)T(n)=O(n2)
—Assume: T(k)≤ck2,fork<nT(k) \leq ck^2, for \:k < nT(k)≤ck2,fork<n

—T(n)=4T(n/2)+n≤4c(n/2)2+nT(n) = 4T(n/2)+n \leq 4c(n/2)^2+nT(n)=4T(n/2)+n≤4c(n/2)2+n
=cn2+n=cn^2+n=cn2+n
=cn2−(−n)=cn^2-(-n)=cn2−(−n)
直观上, 我们感觉到T(n)=O(n)T(n) = O(n)T(n)=O(n)成立, 但是没有证明归纳法的严格形式T(n)≤cn2T(n) \leq cn^2T(n)≤cn2。
造成这种情况的原因, 可能是我们在假设时忽略了低阶项的缘故, 因此

—Assume: T(k)≤c1k2−c2k,fork<nT(k) \leq c_1k^2 - c_2k, for \:k < nT(k)≤c1​k2−c2​k,fork<n

—T(n)=4T(n/2)+n≤4(c1(n/2)2−c2(n/2))+nT(n) = 4T(n/2)+n \leq 4 \big(c_1(n/2)^2 - c_2(n/2) \big) +nT(n)=4T(n/2)+n≤4(c1​(n/2)2−c2​(n/2))+n
=c1n2−2c2n+n=c_1n^2 - 2c_2n + n=c1​n2−2c2​n+n
=c1n2−c2n−(c2−1)n=c_1n^2 - c_2n - (c_2 - 1)n=c1​n2−c2​n−(c2​−1)n, 当c2−1≥0c_2 - 1 \geq 0c2​−1≥0, 即c2≥1c_2 \geq 1c2​≥1时
≤c1n2−c2n\leq c_1n^2 - c_2n≤c1​n2−c2​n

Base case, T(1)=Θ(1)≤c1−c2T(1) =\Theta(1) \leq c_1 - c_2T(1)=Θ(1)≤c1​−c2​, 只要c1c_1c1​相对于c2c_2c2​足够大即可满足
T(1)=Θ(1)T(1) = \Theta (1)T(1)=Θ(1)。
证毕。

递归式-代入法求解过程相关推荐

  1. 4.3—代入法求解递归式

    对于代入法求解递归式,有以下自己的感触: 1.中间的证明过程用到了数学归纳法的思想: (1)首先证明初始条件是不是满足的,例如T(n)=O(nlgn),首先得验证当n=1的时候是不是满足条件,这里还牵 ...

  2. 用代入法求解递归式里的”微妙细节“【算法导论P49】

    当利用归纳法证明一个上界时,实际上证明一个更弱的上界可能会更难一些,因为为了证明一个更弱的上界,我们在归纳证明中也必须使用同样更弱的界. 例如: 考虑一下的递归式: T(n)=4T(n/3)+n 知道 ...

  3. 第四章 4.3 用代入法求解递归式

    4.3-1 证明:T(n)=T(n-1)+n的解为O(n2n^2). c(n−1)2+n≤n2cn2−2cn+c+n≤n2cn2−(2c−1)n+1≤n2 c(n-1)^2+n\le n^2 \\cn ...

  4. AHP层次分析法求解过程(matlab代码)

    查看全文 http://www.taodudu.cc/news/show-6469878.html 相关文章: Matlab实现PSO算法(附上6个完整仿真源码) 计算机组成原理 扩展指令的操作码,[ ...

  5. 分治算法中的数学——求解递归式(代入法)

    前言 在运用分治法将原问题分解成多个子问题后,通常可以得到一个关于时间复杂度的递归式,如T(n)=T(n/2)+O(1),如何求解递归式并得出该算法的时间复杂度O(f(n))就是我们要解决的问题.一般 ...

  6. 算法导论 — 4.4 用递归树方法求解递归式

    笔记 在应用代入法求解递归式时,需要事先做出一个好的猜测.然而,有时候做出好的猜测是很困难的,此时可以考虑采用递归树方法.在递归树中,每个结点表示一个单一子问题的代价.创建递归树之后,对树的每层的各子 ...

  7. 复阻抗法 求解 传递函数

    1.复阻抗法求传递函数 电阻的传递函数 :RRR 电容的传递函数 : 1CS\frac1{CS}CS1​ 电感的传递函数 : LSLSLS 在求解纯电路的传递函数时,只需要使用上式代入即可求解,例如下 ...

  8. 高等数学 函数极限求法(一) 代入法

    高数 函数极限求法(一)  代入法 极限是什么? 极限就像你坐着宇宙飞船去探索宇宙的边界一样,无限接近 却 没法到达! 大学高数中极限部分可以简单分为两部分:函数极限 和 数列极限 : 本篇讲解利用代 ...

  9. 【工具】苏格拉底式诘问法解决工作问题

    目录 一.什么是苏格拉底式诘问法 二.苏格拉底式诘问法的细分 三.在实际工作中运用苏格拉底式诘问法解决问题 一.什么是苏格拉底式诘问法 苏格拉底式诘问法(Socratic Elenchus)是苏格拉底 ...

最新文章

  1. 论文笔记(Attentive Recurrent Social Recommendation)
  2. matlab 画图直接存储_Matlab Figure图形保存
  3. java 自动化测试报告_Java自动化测试框架-10 - TestNG之测试结果篇
  4. AIR中用户离开状态和返回状态
  5. MediaStreamAudioSourceNode
  6. 《方舟生存进化》单机存档损坏解决方法
  7. java jackson unicode_如何让Jackson JSON生成的数据包含的中文以unicode方式编码
  8. STM32控制启动步进电机
  9. 量化研究 | 策略在指数与主连复权的差异化分析(最终篇)
  10. python科学计算环境配置_ATLAS + NumPy + SciPy + Theano 的Python科学计算环境搭建
  11. Java实现word导出与pdf导出
  12. 多项式求和(C语言)
  13. 某某客户的一次勒索病毒应急响应
  14. 大牛手把手教你!Service有几种启动方式?吐血整理
  15. [附源码]java毕业设计网上购物商城系统
  16. Unity 相机跟随(第三人称视角)
  17. Oracle认证的三个等级
  18. 仁者如射,射者正己而后发。发而不中,不怨胜己者,反求诸己而已矣。
  19. 方阵的转置二次方三次方
  20. 微信测试账户的申请,以及配置失败问题的处理,最新

热门文章

  1. es聚合分页java_ES 实现聚合分页
  2. Launcher3文件夹九宫格显示
  3. linux启动postfix命令,如何在Linux停止和启动postfix服务的命令
  4. java用this指向_java中的this指向?
  5. 努比亚Z50 Ultra 参数配置 努比亚Z50 Ultra怎么样
  6. 单季首盈利致股价大涨超20%,亮眼财报背后拼多多的焦虑也来了?
  7. 2019年个税怎么报,据说90%的人都员工的个税计算错了!
  8. 社会网络分析之”组成部分”、小圈子和聚类
  9. mac重置php,苹果笔记本电脑怎么恢复出厂设置
  10. html简单盒子代码,CSS3 3D盒子超简单制作