码迷,mamicode.com
首页 > 编程语言 > 详细

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

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

标签:sp   bs   nbsp   编程   简单   存储   数组   需要   过程   

对于一个由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.

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

标签:sp   bs   nbsp   编程   简单   存储   数组   需要   过程   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!