首页 > 代码库 > 编程之美----寻找数组中的最大值和最小值
编程之美----寻找数组中的最大值和最小值
对于一个由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.
编程之美----寻找数组中的最大值和最小值
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。