以下五种解法可以寻找到数组中的最大值和最小值;
1)问题分解法。
把本题看做两个独立的问题,而非一个问题,所以,每次分别找出最小值和最大值即可,此时,一共需要遍历两次数组,比较次数为2N次;(N表示数组的长度)
2)取单元素法。
维持两个变量min和max,min标记为最小值,max标记为最大值,每次取出一个元素,先与已找到的最小值比较,再与已找到的最大值比较,此种方法只需要遍历一次数组即可;
3)取双元素法。
维持两个变量min和max,min标记为最小值,max标记为最大值,每次比较相邻的两个数,较大者与max比较,较小者与min比较,通过比较找出最大值和最小值。此种方法的比较次数为1.5N次。
示例代码如下:【以下有BUG,自己找