【算法设计与分析】11 递归树
当前面所学习的迭代法、差消法等不太好解决的问题,可以使用递归树,来很方便的解决。
文章目录
- 1. 递归树的概念
- 1.1 迭代在递归树中的表示
- 2. 递归树的生成规则
- 2.1 递归树生成实例
- 2.2 递归树应用实例
- 3. 总结
1. 递归树的概念
- 递归树是迭代计算的模型
- 递归树的生成过程与迭代过程一致
- 递归树上的所有项恰好是迭代之后产生的和式中的项
- 对递归树上的项求和,就是迭代后方程的解
1.1 迭代在递归树中的表示
如果递归树上某节点记为:W(m),则:
举个例子,二分归并排序的时间复杂度的递推式子对应的递归树为:
2. 递归树的生成规则
- 初始,递归树只有根节点,其值为:W(n)
- 不断继续下述过程:
- 将函数项叶节点的迭代式W(m)表示成二层子树
- 用该子树替换该叶节点
- 继续递归树的生成,直到树种无函数项(只有初值)为止
2.1 递归树生成实例
下面还是以二分归并的例子来说明递归树的生成过程:
最终形成递归树:
- 然后对上面递归树每个节点相加进行求和,即可得到W(n)的值:
这与前面求得的结果一样。
2.2 递归树应用实例
求解:
它的递归树为:
观察上面的递归树,每一行的和都是n。但是因为左边子树短一些,右边子树长一些,所以最终的极限末尾处,左边已经没有节点,但是右边还有节点,但是此时右边的节点和不会超过n,所以取其极限O(n).
然后对上面的式子进行求和:
可以看出利用递归树,可以很容易的求出上述的结果,但是利用迭代就比较麻烦。
3. 总结
- 递归树是迭代的图形表示
- 学会递归树的生成规则
- 学会使用递归树求解递推方程的解
【算法设计与分析】11 递归树相关推荐
- 【算法设计与分析】递归与分治 | 复习笔记
文章目录 算法总体思想 递归的概念 定义 n的阶乘 Fibonacci数列 Ackerman函数 排列问题 整数划分问题 Hanoi塔问题 递归小结 分治法的适用条件 分治法的基本步骤 分治法的复杂性 ...
- 计算机算法设计与分析之----- 递归与分治策略
递归与分治策略 [Master定理] 快速排序 优化 逆序对(归并算法) 火柴排队[NOIP2013 提高组] 集合求和 方法一: 递归 (2^n ) 方法二: 组合数学知识 [HNOI2008]越狱 ...
- 算法设计与分析 暴力递归
暴力递归 概述 题目一:汉诺塔问题 题目二:字符串的全部子序列问题 题目三:字符串的全排列问题(分支限界) 题目四:拿纸牌比最大问题 题目五:递归逆序栈 题目六:数字与字符串的转化问题 题目七:重量和 ...
- 【算法设计与分析】经典常考三十三道例题AC代码
❥小虾目前大三,我校在大一下开设<数据结构>这门课,大二上开了<算法设计与分析>这门课,很庆幸这两门课的上机考试总成绩一门100,一门99,最后总分也都90+.下文会给出机试的 ...
- 算法设计与分析——树的搜索策略和字符串处理算法
树的基本搜索策略 爬山法(有点类似于广度优先搜索,只是加上了边的权重) ( 1 ) 构 造 由 根 组 成 的 单 元 素 栈 S ; ( 2 ) I f T o p ( S ) 是 目 标 节 点 ...
- 循环赛日程表非递归Java_王晓东《算法设计与分析》课件.ppt
<王晓东<算法设计与分析>课件.ppt>由会员分享,可在线阅读,更多相关<王晓东<算法设计与分析>课件.ppt(356页珍藏版)>请在人人文库网上搜索. ...
- 算法设计与分析——递归与分治策略——全排列
算法设计与分析--递归与分治策略--全排列 全排列问题的解决是通过分治与递归思想来解决的 首先判断是否递归到了最后一位,如果递归到了最后一位,则输出他当前的全排列序列. 如果没有到达最后一位,则循环的 ...
- 算法设计与分析课程复习笔记11——单源最短路径
算法设计与分析课程复习笔记11--单源最短路径 单源最短路径 最短路径问题 输入:有权有向图G=(V,E) 路径p={ v 0 , v 1 , . . . , v k v_0, v_1, . . . ...
- 算法设计与分析——树
分类目录:<算法设计与分析>总目录 本文中,我们专门讨论用链式数据结构表示有根树的问题.我们将首先讨论二叉树,然后给出针对结点的孩子数任意的有根树的表示方法. 树的结点用对象表示.与链表类 ...
- 算法设计与分析——全排列问题算法分析(递归调用分析图)
(目前网上最易理解递归调用的分析过程--递归调用分析图) 全排列: 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列.当m=n时所有的排列情况 ...
最新文章
- 首次发现!AI脑回路演化向人类更进一步,OpenAI最新研究引热议,有学者评价:太吓人了...
- c# WinForm开发 DataGridView控件的各种操作
- 360导入html没有,IE无法加载到外部CSS样式, 用360浏览器就可以,上CSS引用代码[急]_html/css_WEB-ITnose...
- 燕赵志愿云如何认证_人物|志愿者讲解员王静雅:用心讲好河北历史故事
- 带有AWS DynamoDB的反应式Spring Webflux
- 淘宝、京东等下架火箭队相关商品,回应:涉及主权问题没有讨价还价余地
- MCollective架构篇1-MCollective架构的引入
- Oracle RAC Failover机制分析
- mysql 索引越界_mysql隐式转换造成索引失效的事故总结
- psp记忆棒测试软件,psp记忆棒修复工具 ms-format
- php 关于模板的原理和解析,PHP-关于模板的原理和解析_PHP教程
- Hybird开发之webview
- 专业测试油耗的软件,油耗软件app哪个好_检测汽车油耗的软件_油耗记录软件车机版...
- 机器学习可解释性(二) 之 可解释模型
- SpringBoot框架DataSource多数据源配置
- 基础:某个应用的CPU使用率高达100%,该怎么处理
- 4-任务的挂起与解挂
- 单片机开发不可避免会遇到很多头疼的问题
- 电商平台中的架构实践
- CentOS 官网镜像最新下载地址