当前面所学习的迭代法、差消法等不太好解决的问题,可以使用递归树,来很方便的解决。
1. 递归树的概念
- 递归树是迭代计算的模型
- 递归树的生成过程与迭代过程一致
- 递归树上的所有项恰好是迭代之后产生的和式中的项
- 对递归树上的项求和,就是迭代后方程的解
1.1 迭代在递归树中的表示
如果递归树上某节点记为:W(m),则:
举个例子,二分归并排序的时间复杂度的递推式子对应的递归树为:
2. 递归树的生成规则
- 初始,递归树只有根节点,其值为:W(n)
- 不断继续下述过程:
- 将函数项叶节点的迭代式W(m)表示成二层子树
- 用该子树替换该叶节点
- 继续递归树的生成,直到树种无函数项(只有初值)为止
2.1 递归树生成实例
下面还是以二分归并的例子来说明递归树的生成过程:
最终形成递归树:
- 然后对上面递归树每个节点相加进行求和,即可得到W(n)的值:
这与前面求得的结果一样。
2.2 递归树应用实例
求解:
它的递归树为:
观察上面的递归树,每一行的和都是n。但是因为左边子树短一些,右边子树长一些,所以最终的极限末尾处,左边已经没有节点,但是右边还有节点,但是此时右边的节点和不会超过n,所以取其极限O(n).
然后对上面的式子进行求和:
可以看出利用递归树,可以很容易的求出上述的结果,但是利用迭代就比较麻烦。
3. 总结
- 递归树是迭代的图形表示
- 学会递归树的生成规则
- 学会使用递归树求解递推方程的解
转载:https://blog.csdn.net/qq_37375427/article/details/100864530
查看评论