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

文章目录

  • 1. 递归树的概念
    • 1.1 迭代在递归树中的表示
  • 2. 递归树的生成规则
    • 2.1 递归树生成实例
    • 2.2 递归树应用实例
  • 3. 总结

1. 递归树的概念

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

1.1 迭代在递归树中的表示

如果递归树上某节点记为:W(m),则:

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

2. 递归树的生成规则

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

2.1 递归树生成实例

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


最终形成递归树:

  • 然后对上面递归树每个节点相加进行求和,即可得到W(n)的值:

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

2.2 递归树应用实例

求解:

它的递归树为:

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

然后对上面的式子进行求和:

可以看出利用递归树,可以很容易的求出上述的结果,但是利用迭代就比较麻烦。

3. 总结

  • 递归树是迭代的图形表示
  • 学会递归树的生成规则
  • 学会使用递归树求解递推方程的解

【算法设计与分析】11 递归树相关推荐

  1. 【算法设计与分析】递归与分治 | 复习笔记

    文章目录 算法总体思想 递归的概念 定义 n的阶乘 Fibonacci数列 Ackerman函数 排列问题 整数划分问题 Hanoi塔问题 递归小结 分治法的适用条件 分治法的基本步骤 分治法的复杂性 ...

  2. 计算机算法设计与分析之----- 递归与分治策略

    递归与分治策略 [Master定理] 快速排序 优化 逆序对(归并算法) 火柴排队[NOIP2013 提高组] 集合求和 方法一: 递归 (2^n ) 方法二: 组合数学知识 [HNOI2008]越狱 ...

  3. 算法设计与分析 暴力递归

    暴力递归 概述 题目一:汉诺塔问题 题目二:字符串的全部子序列问题 题目三:字符串的全排列问题(分支限界) 题目四:拿纸牌比最大问题 题目五:递归逆序栈 题目六:数字与字符串的转化问题 题目七:重量和 ...

  4. 【算法设计与分析】经典常考三十三道例题AC代码

    ❥小虾目前大三,我校在大一下开设<数据结构>这门课,大二上开了<算法设计与分析>这门课,很庆幸这两门课的上机考试总成绩一门100,一门99,最后总分也都90+.下文会给出机试的 ...

  5. 算法设计与分析——树的搜索策略和字符串处理算法

    树的基本搜索策略 爬山法(有点类似于广度优先搜索,只是加上了边的权重) ( 1 ) 构 造 由 根 组 成 的 单 元 素 栈 S ; ( 2 ) I f T o p ( S ) 是 目 标 节 点 ...

  6. 循环赛日程表非递归Java_王晓东《算法设计与分析》课件.ppt

    <王晓东<算法设计与分析>课件.ppt>由会员分享,可在线阅读,更多相关<王晓东<算法设计与分析>课件.ppt(356页珍藏版)>请在人人文库网上搜索. ...

  7. 算法设计与分析——递归与分治策略——全排列

    算法设计与分析--递归与分治策略--全排列 全排列问题的解决是通过分治与递归思想来解决的 首先判断是否递归到了最后一位,如果递归到了最后一位,则输出他当前的全排列序列. 如果没有到达最后一位,则循环的 ...

  8. 算法设计与分析课程复习笔记11——单源最短路径

    算法设计与分析课程复习笔记11--单源最短路径 单源最短路径 最短路径问题 输入:有权有向图G=(V,E) 路径p={ v 0 , v 1 , . . . , v k v_0, v_1, . . . ...

  9. 算法设计与分析——树

    分类目录:<算法设计与分析>总目录 本文中,我们专门讨论用链式数据结构表示有根树的问题.我们将首先讨论二叉树,然后给出针对结点的孩子数任意的有根树的表示方法. 树的结点用对象表示.与链表类 ...

  10. 算法设计与分析——全排列问题算法分析(递归调用分析图)

    (目前网上最易理解递归调用的分析过程--递归调用分析图) 全排列: 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列.当m=n时所有的排列情况 ...

最新文章

  1. 首次发现!AI脑回路演化向人类更进一步,OpenAI最新研究引热议,有学者评价:太吓人了...
  2. c# WinForm开发 DataGridView控件的各种操作
  3. 360导入html没有,IE无法加载到外部CSS样式, 用360浏览器就可以,上CSS引用代码[急]_html/css_WEB-ITnose...
  4. 燕赵志愿云如何认证_人物|志愿者讲解员王静雅:用心讲好河北历史故事
  5. 带有AWS DynamoDB的反应式Spring Webflux
  6. 淘宝、京东等下架火箭队相关商品,回应:涉及主权问题没有讨价还价余地
  7. MCollective架构篇1-MCollective架构的引入
  8. Oracle RAC Failover机制分析
  9. mysql 索引越界_mysql隐式转换造成索引失效的事故总结
  10. psp记忆棒测试软件,psp记忆棒修复工具 ms-format
  11. php 关于模板的原理和解析,PHP-关于模板的原理和解析_PHP教程
  12. Hybird开发之webview
  13. 专业测试油耗的软件,油耗软件app哪个好_检测汽车油耗的软件_油耗记录软件车机版...
  14. 机器学习可解释性(二) 之 可解释模型
  15. SpringBoot框架DataSource多数据源配置
  16. 基础:某个应用的CPU使用率高达100%,该怎么处理
  17. 4-任务的挂起与解挂
  18. 单片机开发不可避免会遇到很多头疼的问题
  19. 电商平台中的架构实践
  20. CentOS 官网镜像最新下载地址

热门文章

  1. 简易电影售票系统(附部分总结)
  2. 科技爱好者周刊(第 171 期):云服务流量有多贵?
  3. C# 监控字段_资产运营专业线升级公告(资源、物业、运维监控)
  4. 工程笔记阶段1-DAC正弦波实验
  5. 中文版eclipse,格式改成UTF-8
  6. 【预测模型】基于狼群算法优化BP神经网络实现预测matlab源码
  7. Excel制作抽奖小程序
  8. C语言学生信息管理系统详细设计
  9. eviews建立时间序列模型_Eviews教程 Eviews进行时间序列分析教程
  10. HTML5是不是解决跨平台问题的终极密钥