递归算法
来源:互联网 发布:博罗县网络问政中心 编辑:程序博客网 时间:2024/06/08 02:13
程序直接或间接调用自身的编程技巧称为递归算法。
递归算法是一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法, 它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。递归策略只需少量的代码就可描述出解题过程所需要的多次重复计算, 大大地减少了程序的代码量。
递归的优势在于用有限的语句来定义对象的无限集合。
一般来说,递归需要有边界条件,递归前进段和递归返回段,当边界条件不满足的时候,递归前进, 当边界条件满足时,递归返回。注意:在使用递归策略时, 必须有一个明确的递归结束条件, 称为递归出口, 否则递归将无限递归下去。
递归算法一般用于解决3类问题。
1. 数据定义是按递归定义的。
2. 问题解法用递归算法实现
3. 数据的结构形式是按递归定义的。
递归的缺点:
递归算法解题的运行效率较低。 在递归调用过程中,系统为每一层的返回点., 局部变量等开辟堆栈来存储。 递归次数过多就会造成堆栈溢出。
阅读全文
0 0
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- QT5.5 (post请求、MD5加密)
- Palindrome Number
- Apache访问控制之虚拟主机配置
- html加CSS总结
- Could not initialize class com.jacob.activeX.ActiveXComponent
- 递归算法
- 【入门篇】Activiti三种网关的绘制方法以及简单的用法
- 算法第四版约瑟夫问题队列实现
- LeetCode 647. Palindromic Substrings[Medium]
- 通过openwrt源码修改默认ip
- 蓝桥杯 算法训练 区间k大数查询
- (C++)二叉树的线索化 / 线索二叉树
- 初学mysql sever 笔记|主机与虚拟机在同一网段
- 【LintCode】3.统计数字(Medium)解题报告