第三题递归调用这是怎么调用的 最后到底输出什么f(a,9)这是啥?

递归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;

之后 逐步往回比较

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网