Java 迭代与递归
来源:互联网 发布:域名如何icp备案 编辑:程序博客网 时间:2024/06/07 08:46
因为最近公司项目需求,实现Java桌面程序实现树形结构 笔者查阅了大量的实现java树形的方法,其中就用到了递归,下面就简单说一下递归与迭代的区别和实现方式:
递归
所谓递归:是函数/过程/子程序在运行过程中直接或间接调用自身而产生的重入现象。简单来说就是函数根据函数本身查询函数自己获取结果
英文名:recursive algorithm
递归算法是把问题为规模缩小的同类问题的子问题。,然后递归调用函数,来表示问题的解释结果
一个过程或者函数,直接或者间接调用自己本身这种过程就叫做递归过程,
迭代
迭代:迭代就是我们最常见的循环,利用变量(函数)的原值推算出变量(函数)的一个新值,如果形容递归是自己调用自己的话,迭代就是变量A不停的调用变量B.递归中一定有迭代,但是迭代中不一定有递归,大部分可以相互转换.能用迭代的不用递归,递归调用函数,浪费空间,
java最简单的递归转化迭代的例子:
求1到10
递归:
public static void main(String[] args)
{
//输出function
function(10);
}
//定义function方法
void function(int i)
{
if(i<10)
{
System.out.println(i);
function(i++);
}
}
迭代:
public static void main(String[] args)
{
for(int i=1;i<=10;i++)
System.out.println(i);
}
在很多种情况下,迭代和递归都可以完成相同的功能, 不过递归有些功能迭代就完成不了。比如笔者近期用到的树形数据,递归的自查询得有点就显示出来了,而如果用迭代实现代码量相对就会比较大, 并且代码没有递归简洁,熟练使用递归后能提高代码质量。(笔者也在学习当中)
以上就是迭代和递归的区别,有机会会再写一篇适用于递归查询的例子(如:获取树形结构,笔者也正在实现)。如果有理解不到位的地方请诸位大神指教!
阅读全文
1 0
- Java 迭代与递归
- Java中的迭代与递归
- Java中的迭代与递归
- Java中的迭代与递归
- 迭代与递归
- 递归与迭代
- 递归与迭代
- 递归与迭代
- 递归与迭代
- 递归与迭代
- 递归与迭代
- 递归与迭代
- 递归与迭代
- 递归与迭代
- 递归与迭代
- 递归与迭代
- 递归与迭代
- 递归与迭代
- day07
- 20170805
- 用Annotation,内省技术给一个对象注入属性
- Java基础05 实施接口
- Java知识点导图
- Java 迭代与递归
- Android 常用sql语句笔记(二)
- Android adb push与 adb install简介
- 远程桌面连接出现内部错误
- 来自一个java小白的自白
- 在大学老师布置的一些题目,欢迎各位大佬指正(2)
- 多线程的2种实现方式
- 【设计模式】单例模式
- 二叉树