求解释一下这段递归的具体的运算过程 java

[复制链接]
查看11 | 回复3 | 2012-8-15 09:55:17 | 显示全部楼层 |阅读模式
递归是同一个方法体的嵌套执行的过程,它的运算执行过程是由里到外的,使用少量的数据更方便理解。例如:对于getMax方法假设只使用56,4,54,1
由里至外,当list中只剩1这个元素的时候满足了if的执行条件
由此开始执行运算执行上一个方法体:此时head=54,maxV=1。
而temp变量是用来持有最大值的,经过比较后temp=54并将其返回;
再执行上一个方法体:此时head=4,maxV=54,经过比较后temp=54并将其返回;
在执行上一个方法体:此时head=56,maxV=54,经过比较后temp=56并将其返回;
至此递归结束。getMin方法也是同样的...
回复

使用道具 举报

千问 | 2012-8-15 09:55:17 | 显示全部楼层
能不用递归的地方尽量不用递归, 因为递归程序执行效率低, 但有的场合不用递归就不行, 上面的两段程序我给你写好, 你稍改一下就可以用.public static int min(int[] values){
if (values != null)
{
int min = Integer.MAX_VALUE;...
回复

使用道具 举报

千问 | 2012-8-15 09:55:17 | 显示全部楼层
顺序执行到第一个system输出语句时调用个getMax()方法,执行完输出最大;执行第二个system语句时调用getMin()方法;至于递归,那是在执行getMax()方法和getMin()方法时回调,知道list数组被遍历完。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行