【算法设计与分析】11 递归树

本文介绍递归树的概念,生成规则及应用实例,展示如何通过递归树方便地解决迭代法和差消法难以应对的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当前面所学习的迭代法、差消法等不太好解决的问题,可以使用递归树,来很方便的解决。

1. 递归树的概念

  • 递归树是迭代计算的模型
  • 递归树的生成过程与迭代过程一致
  • 递归树上的所有项恰好是迭代之后产生的和式中的项
  • 对递归树上的项求和,就是迭代后方程的解

1.1 迭代在递归树中的表示

如果递归树上某节点记为:W(m),则:
在这里插入图片描述

举个例子,二分归并排序的时间复杂度的递推式子对应的递归树为:

在这里插入图片描述

2. 递归树的生成规则

  • 初始,递归树只有根节点,其值为:W(n)
  • 不断继续下述过程:
  1. 将函数项叶节点的迭代式W(m)表示成二层子树
  2. 用该子树替换该叶节点
  • 继续递归树的生成,直到树种无函数项(只有初值)为止

2.1 递归树生成实例

下面还是以二分归并的例子来说明递归树的生成过程:

在这里插入图片描述
在这里插入图片描述

最终形成递归树:

在这里插入图片描述

  • 然后对上面递归树每个节点相加进行求和,即可得到W(n)的值:在这里插入图片描述

这与前面求得的结果一样。

2.2 递归树应用实例

求解:
在这里插入图片描述
它的递归树为:

在这里插入图片描述

观察上面的递归树,每一行的和都是n。但是因为左边子树短一些,右边子树长一些,所以最终的极限末尾处,左边已经没有节点,但是右边还有节点,但是此时右边的节点和不会超过n,所以取其极限O(n).

然后对上面的式子进行求和:
在这里插入图片描述
可以看出利用递归树,可以很容易的求出上述的结果,但是利用迭代就比较麻烦。

3. 总结

  • 递归树是迭代的图形表示
  • 学会递归树的生成规则
  • 学会使用递归树求解递推方程的解
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值