Java编程算法基础----递归原理分析
来源:互联网 发布:怎样做淘宝网店 编辑:程序博客网 时间:2024/05/29 10:30
递归调用与一般的函数调用过程完全相同,只是被调用方法与主调方法相同而已。函数调用与正确返回是通过栈结构来实现的。
本节仔细分析了递归过程中,函数的调用、参数传递、函数返回的过程细节;通过分析揭示出递归调用的本质
1.函数调用的执行过程是串行的
2.形式参数是调用函数时临时创建的
void f(){int a = 5;int b = 6;;int c = g(a,b);c++;}int g(int x, int y){return x + y;}
在函数f中声明了3个局部变量a,b,c, 在内存中利用栈为其分配相应的内存空间,如右图
void f(){ 在第一个大括号开始时,分配局部变量
} //在最后一个大括号,释放已经分配的局部变量
package NO4;public class Test02 {public static int f(int n){ if(n == 0)//if(n <= 1) return 1;return n * f(n - 1);}public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.print(f(5));}}
理解递归的关键在于理解形式参数在栈中存在多层的这么一种情况
可以类比生活中的一个例子:
从前有个山,山里有个庙,庙里住着俩和尚,老和尚给小和尚讲故事,讲的故事是" 从前有个山,山里有个庙"
看似像是循环,其实不是, 故事里的山和老和尚所处的山不是一回事
每次深入一层都有新的内容(故事里的可看做是形参)
0 0
- Java编程算法基础----递归原理分析
- Java编程算法基础---- 构造递归思想
- java 递归原理分析
- java递归算法原理
- Java 算法基础 -递归
- Java基础--递归算法
- java递归算法分析
- Java编程算法基础----递归与循环关系
- Java中的递归原理分析
- Java中的递归原理分析
- Java中的递归原理分析
- Java中的递归原理分析
- Java中的递归原理分析
- Java中的递归原理分析
- Java中的递归原理分析
- Java中的递归原理分析
- Java中的递归原理分析
- Java中的递归原理分析
- 经典问题解析(二)
- 将项目从Django 1.4 升级至Django 1.6.2 源码修改的三个步骤
- 运算符的优先级
- 利用正则表达式匹配字符中多少个字母,数字,空格
- 操作系统篇
- Java编程算法基础----递归原理分析
- Appium根据xpath获取控件实例随笔
- JVM 内存泄露简单示例
- UVA 10534Wavio Sequence(LIS)
- 下载的性能优化
- hdu 1540 Tunnel Warfare(线段树)
- Java多线程面试图
- Winpcap网络编程二之环境配置,Eclipse配置C/C++环境
- hdu 1542 Atlantis(扫描线)