递归
来源:互联网 发布:安卓软件监控 编辑:程序博客网 时间:2024/05/23 23:16
程序调用自身的编程技巧称为递归( recursion)。
一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。用递归思想写出的程序往往十分简洁易懂。
一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
注意:
(1) 递归就是在过程或函数里调用自身;
(2) 在使用递增归策略时,必须有一个明确的递归结束条件,称为递归出口,否则将无限进行下去(死锁)。
递归算法一般用于解决三类问题:
(1)数据的定义是按递归定义的。(Fibonacci函数)
(2)问题解法按递归算法实现。(回溯)
(3)数据的结构形式是按递归定义的。(树的遍历,图的搜索)
0 0
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 递归
- 移动网络游戏实现流程 -- 基于Cocos2d-x引擎和pomelo服务器框架
- 黑马程序员----c语言入门疑难点--几个经典的算法
- sql sever 2008安装失败
- android异常解决:org.apache.http.conn.HttpHostConnectException: Connection to http://127.0.0.1 refused
- C语言简单算法的编写
- 递归
- libsvm ——SVM中参数 c和g的最佳值的选择
- AFNetWorking使用
- 梦想问答
- HashSet介绍
- 如何建立和输出一个简单链表
- Netty源码解析
- C#几个经常用到的字符串的截取
- 任务调度时间 (某公司实习生招聘笔试试题)