看不懂的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
[解决办法]
递归是一种思想一种设计思路,跟具体编程语言没关系的。