首页 > 编程语言 > 详细

编程之美----寻找数组中的最大值和最小值

时间:2014-11-19 07:10:51      阅读:208      评论:0      收藏:0      [点我收藏+]

对于一个由N个整数组成的数组,需要比较多少次才能把最大和最小的数找出来呢?

解法:最简单的是扫描一遍数组,需要比较2*N次才能求解。

解法二:首先在概念上把连个相邻的数分在同一组,只是想象而已,无须任何操作。然后比较同一组的奇数位数字和偶数位数字,将较大的数放在偶数位上,较小的数放在奇数位上。N/2次比较久可以调好。然后求出偶数位上的Max,和奇数位上的Min,各须比较N/2次。总共须比较1.5*N次。  若不破坏原数组,只需用两个变量Max和Min来存储当前的最大值和最小值,当比较完奇数位和偶数位上的数字后,不调整位置,直接再和当前Max和当前Min比。整个过程仍比较1.5*N次。

解法三:利用分治思想。分别求出前后N/2个数的Min和Max,然后去较小的Min,较大的Max即可。比较次数为1.5*N-2.

编程之美----寻找数组中的最大值和最小值

原文:http://www.cnblogs.com/wen-ge/p/4106997.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!