递归if(n>1)不满足条件直接就else了啊,所以就returna[0]了啊? 到底为什么此题是求出数组a元素的最大值,这个递归调用是怎么调用的?我觉得最后应该是8 ,但是我的想法肯定错我又不知道哪错了
第1个回答 推荐于2016-03-23
t > a[ n - 1] ? t : a[ n - 1] 这个返回的是 两个数中最大的一个数
基本只需要看第一个判断,进入了递归,
冒泡算法,从数组最后一个数开始比较追问
基本只需要看第一个判断,进入了递归,
冒泡算法,从数组最后一个数开始比较追问
f(a,n-1)和a[n-1]怎么比较大小?
f(a,1)的值是多少?
f(a,n-1) 会在 t = f(a,n-1) 继续调用 f(a,n-2) ... 返回 a[n - 1] 和 a[n - 2] 的最大值
f(a,9) 会在 t = f(a,8) 继续调用 f(a,8) ... 返回 a[7] 和 a[8] 的最大值
f(a,8) 会在 t = f(a,7) 继续调用 f(a,7) ... 返回 a[6] 和 a[7] 的最大值
...
一直到 n = 2 > 1 ;
f (a,2) 会在 t = f(a,1) 继续调用 f(a,1) 返回 a[0] 和 a[1] 的最大值:
t = f (a,1) = a[0] > a[ 1] ? t : a[1] 这个比较a[1] 和a[2]的大小 返回给 t = f (a,2) = 7;
之后 逐步往回比较