算法分析(二)——递归算法的递归式及其求解方法

渐进符号的学习中我们可以通过将一个基本算法的运行时间即其基本步骤执行次数表示为问题规模的函数进而求出运行时间的一个渐近紧确解,但是如果在算法中存在递归的情况时我们发现很难写出这样的一个多项式用来准确描述问题规模与基本步骤的次数的关系,这时候,递归式就显得很有用处;
递归式,就是用来描述递归算法运行时间的一个等式或者不等式,它通过更小的输入上的函数值(即下一层递归调用的时间代价)来描述本层递归的时间复杂度:
T(n)=aT( n b )+f(n)
一:代入法
猜测一个界,然后用数学归纳法证明解是正确的;(可用递归树产生的结果作为猜测的渐近界来加以证明)
二,递归树法
将递归式转化为一个树,其节点表示单一子问题的代价,子问题对应某次递归函数的调用;然后采用边界和技术来求解递归式;
例如,递归式
T(n)=3T( n 4 )+ Θ ( n 2 )由于舍入对于求解递归式是没有影响的,因此我们将渐近符号改写为隐含的常数系数c>0;即
T(n)=3T( n 4 )+c( n 2 )      递归式如图所示(在这里我们假定n是4 的幂)

                                                T(n)

                          这里写图片描述

这里写图片描述
这里写图片描述
分析过程如下:

三,主方法

猜你喜欢

转载自blog.csdn.net/qq_42468130/article/details/80921480