关于递归的基本认识
来源:互联网 发布:jquery传递json数据 编辑:程序博客网 时间:2024/06/06 10:00
递归分两步:递和归。一般情况下,递归对于编程人员而言,不容易理解。因为我们做事情,一般都是从头开始的,而递归却是从末尾开始的。例如:Febonacci序列的递归表示为:
int Febc(int n)
{
if(n<3) return (1); //先考虑问题的最后结果
else
return (Febc(n-1)+Febc(n-2));
}
总有人认为递归完全没必要,用循环就可以实现,其实这是一种很肤浅的理解。诚然,递归占用极大的空间性能,但是有些情况下循环是不可能取代递归的。递归之所以能够存在,是因为递归可以产生无限循环体,也就是说有可能产生100层也可能10000层for/while循环。例如对于一个字符串进行全排列,字符串长度不定,那么如果用循环来实现,你会发现根本无从下手,写不出来,这个时候就要调用递归。另外在递归模型里面还可以使用分支递归,这种功能远远比循环更灵活更强大。在我们经常接触的数据结构中,对于线性数据结构,比较适合用循环方法,而对于树状数据结构,比如二叉树,递归方法则非常简洁优雅。【作者:内存为王】
- 关于递归的基本认识
- 关于runtime的基本认识
- 关于linux的基本认识
- 关于变量的一些基本认识01
- 关于Linux的认识和基本指令
- 关于函数调用和尾递归的一点认识
- 递归函数的认识
- 关于流计算基本认识
- 关于引用数据类型与基本数据类型的认识
- 关于正向代理,反向代理的基本认识
- 关于java JIT(即时编译器)的基本认识
- javaee关于dom4j对xml的基本认识
- Angular开发(五)-关于组件的基本认识
- Angular开发(八)-关于表单的基本认识
- Angular开发(十)-关于表单的基本认识
- 关于mysql中基本数据类型的一些认识
- CSS的基本认识
- 电子元件的基本认识
- weblogic注册为windows系统服务的一个问题
- memcmp,memicmp函数
- shell的几个实用快捷键
- URLEncoder.encode与URLDecoder.docode的使用
- 三款常见JSON类库工具性能对比
- 关于递归的基本认识
- 使Tomcat使用APR
- WebRTC音视频引擎研究(2)--VoiceEngine音频编解码器数据结构以及参数设置 .
- 地图战争
- Windows下虚拟机安装Ubuntu
- java容器类
- Java 理论与实践: 应用 fork-join 框架
- html框架代码大全
- VP8简介