递归算法(java)
2015-10-30 16:28
302 查看
最近在用EasyUI中的tree遍历节点的时候用到了递归算法,现总结如下:
* 递归算法:在函数里调用自身,但必须确定递归出口,即结束条件,不然就是无限循环;
* 递归一般解决的问题:
* 1.数据的定义是按递归定义的(Fibonacci函数);
* 2.树的遍历,图的搜索;
* 3.回溯;
* 递归的缺点:
* 递归算法的运行效率较低。在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出。(网上这样说的)
测试了两个例子:
1.
* 递归算法:在函数里调用自身,但必须确定递归出口,即结束条件,不然就是无限循环;
* 递归一般解决的问题:
* 1.数据的定义是按递归定义的(Fibonacci函数);
* 2.树的遍历,图的搜索;
* 3.回溯;
* 递归的缺点:
* 递归算法的运行效率较低。在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出。(网上这样说的)
测试了两个例子:
1.
/** * 1.求5的阶乘5=5*4*3*2*1 */ public static int Test1(int n){ if (n==0||n==1) { return 1; }else { return n*Test1(n-1); } }2.
/** * 2.楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶 */ public static int Test2(int n){ if (n==1) { return 1; }else if (n==2) { return 2; }else { return Test2(n-1)+Test2(n-2); //这里可以这样理解:
// 最后一次走一步Test2(n-1)或者最后一次走两步Test2(n-2) } }
相关文章推荐
- java io 写文件,包括追加写文件
- java serializable深入了解
- java this
- Java的clone方法 prototype
- Eclipsez安装GEF
- java接口
- Java抽象类和接口
- eclipse个版本的比较
- Java 之复合赋值运算符
- 数据挖掘-基于贝叶斯算法及KNN算法的newsgroup18828文本分类器的JAVA实现(上)
- java调用批处理(doc)执行多条命令
- 《java8函数式编程》——使用函数式编程重构代码
- Spring 和 MyBatis 环境整合
- JAVA 创建TXT文件,写入文件内容,读取文件内容
- java对象的序列化与反序列化
- java实现文件下载功能,自动弹出保存窗口
- java static关键字
- 配置SWT Java开发环境
- springmvc上传多图片
- springmvc 环境配置图