首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

看不懂的Java递归,该怎么处理

2013-12-04 
看不懂的Java递归public static void main(String[] args) {// TODO Auto-generated method stubint[] a

看不懂的Java递归
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a = {11,22,3,4,15,16,7,8,19,10};

System.out.println(max(a));
}
  static int max(int[] array) {
    return max(array, 0);
  }
  static int max(int[] array, int from) {

    if (from == array.length - 1) {
      return array[from];
    }
    // 程序进来后,上面这个判断需要循环10次,才能进入array[from];返回后进入下面语句判断
    int r = Math.max(array[from], max(array, from + 1));
    // 为什么这两个r这里会循环,并且from每次减1?
    return r;
  }
 //array[0]=11,max(array,1)=22 
[解决办法]
 22
 //array[1]=22,max(array,2)=19 
[解决办法]
22
 //array[2]=3,max(array,3)=19  
[解决办法]
 19
//array[3]=4,max(array,4)=19  
[解决办法]
 19
//array[4]=15,max(array,5)=19  
[解决办法]
 19
//array[5]=16,max(array,6)=19 
[解决办法]
  19
//array[6]=7,max(array,7)=19   
[解决办法]
  19
 //array[7]=8,max(array,8)=19  
[解决办法]
  19
//array[8]=19,max(array,9)=10   
[解决办法]
   19
[解决办法]
递归是一种思想一种设计思路,跟具体编程语言没关系的。

热点排行