![](https://img-blog.csdnimg.cn/20200607172648138.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xsdHF5bA==,size_16,color_FFFFFF,t_70#pic_center)
递归算法的设计要素
递归思维是一种从下向上的思维方式,使用递归算法往往可以简化我们的代码,
而且还帮我们解决了很复杂的问题。递归算法的难点就在于它的逻辑性,一般设计
递归算法需要考虑以下几点:
- 明确递归的终止条件
- 提取重复的逻辑,缩小问题的规模不断递去
- 给出递归终止时的处理办法
递归算法的经典实例
一一问题定义即为递归定义
一一问题应用递归算法来解决
一一部分数据结构也是用递归来定义的
问题递归定义
●阶乘
阶乘递归图解–例求f(4)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200607172717792.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xsdHF5bA==,size_16,color_FFFFFF,t_70#pic_center)
●斐波纳契数列
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020060717272765.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xsdHF5bA==,size_16,color_FFFFFF,t_70#pic_center)
●杨辉三角的取值
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200607172746768.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xsdHF5bA==,size_16,color_FFFFFF,t_70#pic_center)
应用递归算法解决问题
●hanoi塔
在分治算法中有详细介绍。
数据结构中的递归定义
●树
请看(微信公众号“Java长征记”)数据结构环节的讲解。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)