C语言程序设计求这道题算法的详细过程

 我来答
匿名用户
2017-06-03
展开全部
//找最大值啊,所以结果当然是232啦!这道题用二分法求数组的最大值.他的实现思想是这样的,每次都把数组分成两组(就是t1,t2,t1是前半部分,t2是后半部分),递归调用自身求最大值;每次调用自身又将已经分成两组的两个数组分成两组(再分一次就有四组了),如此反复,最后的结果是数组只剩下一个数了(函数里面:if(i>=j),由这句话体现,意思是,下标大于等于上标了,所以只有一个数,立即返回这个数给上层调用就行了!)上层调用拿到这个数以后,再跟另外一半得到的结果比较,最终得到最大的那个数.我再结合这个实例说一下吧,23,43,1,53,232,33一共有六个数,首次调用g,g就将这个数组分成两个分别有三个的数组:23,43,1//数组1,53,232,33//数组2递归调用g,下层的两个g再把这个数组分成两个,就变成了如下四个数组:23,43//数组31//数组453,232//数组533//数组6数组4跟6只有一个数,直接返回这个数回到上层调用,数组3跟数组5还有两个数,再分成两个,依次类推,再逐级返回.如果还听不懂我下面再画一个图吧:
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式