博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
递归应用场景和调用机制
阅读量:3962 次
发布时间:2019-05-24

本文共 886 字,大约阅读时间需要 2 分钟。

1 递归的概念

简单的说,递归就是方法自己调用自己,每次调用时传入不同的变量,递归有助于编程者解决复杂的问题,同时可以让代码变得更简洁。

递归的调用机制:

1)当程序执行到一个方法时,就会开辟一个独立的空间(栈)
2)每个空间的数据(局部变量),是独立的.
在这里插入图片描述

public static void main(String[] args) {        recursion(4);    }    public static void recursion(int n){        if(n > 2){            recursion(n-1);        }        System.out.println(n);    }
public static void main(String[] args) {        recursion(4);    }    public static void recursion(int n){        if(n > 2){            recursion(n-1);        }else {            System.out.println(n);        }    }

注意以上两种代码输出结果的区别

递归用于解决什么样的问题

1)各种数学问题,如8皇后问题,汉诺塔,阶乘问题,迷宫问题,球和篮子的问题
2)各种算法中也会用到递归,比如快速排序,归并排序,二分查找,分治算法
3)将用栈解决的问题,用递归代码比较简洁

递归需要遵守的规则:

1)执行一个方法时,就创建一个新的受保护的独立空间(栈空间)
2)方法的局部变量是独立的,不会互相影响,比如n变量
3)如果方法中使用的是引用类型变量(比如数组),就会共享该以农用类型的数据
4)递归必须向退出递归的条件逼近,否则就是无限递归,出现StackOverFlowError
5)当一个方法执行完毕,或者遇到return,就会返回,遵守谁调用,就将结果返回给谁,同时当方法执行完毕或者返回时,该方法也就执行完毕.

转载地址:http://jjmzi.baihongyu.com/

你可能感兴趣的文章
通俗易懂解剖jbpm4
查看>>
云盘 同步盘介绍 同步工具介绍
查看>>
rsync
查看>>
win7 英文版电脑 不睡眠,不休眠
查看>>
Bash中如何判断一个命令是否存在 查看当前目录下文件的个数
查看>>
makefile
查看>>
linux 文件权限
查看>>
部分简化字感觉不如繁体字有深意
查看>>
cgo 崩溃 64位地址截断引发的挂死问题
查看>>
drbd
查看>>
网络 IP
查看>>
网络路由
查看>>
网络 tcp 性能 可靠
查看>>
网络 https 握手
查看>>
去掉调试信息
查看>>
lsof 使用
查看>>
golang获取本机地址
查看>>
date 使用
查看>>
ipcalc
查看>>
网络 linux 禁止 ping
查看>>