算法导论 4.2-4
来源:互联网 发布:visio流程图软件下载 编辑:程序博客网 时间:2024/05/06 16:55
1 题目
利用递归树来找出递归式T(n)=T(n-a)+T(a)+cn的渐近紧确解,其中a>=1且c>0是常数。
2 分析与解答
画出递归树:
从递归树可以得到:
- 递归树的高度为⌊ n/a ⌋ ;
- 深度为i的结点的代价总和为T(a)+c(n-ia)
忽略上下取整,可得T(n)=∑i=0n/a(T(a)+c(n-ia))=(n/a+1)T(a)+(cn2+acn)/2a=Θ (n2);
用替换法证明,首先证明T(n)=O(n2):
若渐近上界存在,可得T(n) <= c0 (n-a)2 + T(a) + cn =c0 n2 - (2ac0 n - ac02 - T(a) - cn);
显然当c0 >= c/a时,2ac0 n - ac0 2 - T(a) - cn >= cn - ac02 - T(a);
此时,只需n >= (ac0 2 + T(a))/c,就可令(2ac0 n - ac02 - T(a) - cn) >=0;
那么,当满足上述条件时,显然T(n) <= c0 n2,即T(n)=O(n2);
我们取c0 = c/a,则当n >= c/a + T(a)/c时,存在c0 =c/a,使T(n)<=c0 n2 。
再证明T(n)=Ω(n2):
根据渐近下界定义,可得T(n) >= c0 (n-a)2 + T(a) + cn =c0 n2 - 2ac0 n + ac02 + T(a) + cn;
当c0 = c/2a时,上式转换为T(n) >= c0 n2 + ac02 + cn >= c0 n2;
即存在c0 = c/2a,使得当n >= 0时,T(n)>=c0 n2 ,即T(n)=Ω(n2);
综上可得T(n)=Θ(n2)。证毕
- 算法导论 4.2-4
- 算法导论 4.2-1
- 算法导论 4.2-2
- 算法导论 4.2-3
- 算法导论 4.2-5
- 算法导论 4-4
- 算法导论14.3-4
- 算法导论15.4-4
- 算法导论11.1-4
- 算法导论 1.1-4
- 算法导论 2.1-4
- 算法导论 2.3-4
- 算法导论 2-4
- 算法导论11.1-4
- 算法导论11.2-4
- 算法导论 3.1-4
- 算法导论 3.2-4
- 算法导论 3-4
- JAVA中的Class.forName作用及JDBC应用探究
- C++赋值兼容原则
- note : judge PE Image on R3/R0 by image address range
- Qt 学习之路 2(18):事件--代码实现
- Hibernate与MyBatis比较
- 算法导论 4.2-4
- 最大开源代码sourceforge 简介 及视音频方面常用的开源代码
- 查看oracle对象当初被创建时的SQL语句
- Java学习笔记之 面向对象基本概念
- hive中的时间处理函数
- JDBC执行存储过程的四种情况
- Android入门笔记之线性布局(计算器)
- "undefined reference to" 问题解决方法
- 以Post方式请求