递归求数组的最大值,主要说下递归执行的过程

来源:互联网 发布:qq三国吃白菜数据 编辑:程序博客网 时间:2024/06/05 17:09

闲着也是闲着,加深下递归执行的过程。

一:代码(主要是观察递归的过程,不要在意代码。。。)


二:过程

1、调试程序,添加查看n的值


2、进入递归函数,可以看到n=3,不<=0


执行过程图示


3、再次调用max函数,执行n=2,也不<=0



4、再进入max函数,n=1,也不<=0



5、再进入max函数,n=0,返回a[0]=4,


这一层的递归函数结束



6、此时返回到上级的max函数,n=1,a[1]=5,大于上次return的a[0]=4,



所以返回a[1]=5



这一层的递归也结束


7、再次返回上层max函数,n=2,a[2]=3<5,所以执行else中的max(a,1),再次递归求max(a,1),(实际已经求过一次了,不过他这里仍然递归求值,返回的值为5)



8、再次返回上次递归max函数(也就是主函数调用的max函数),n=3,a[3]=2<5,



执行else中的递归函数max(a,2),同7


9、最后返回最大值



1 0
原创粉丝点击