解法一:
扫描一次数组找出最大值;
再扫描一次数组找出最小值。
代码(略)
比较次数2N-2
解法二:
将数组中相邻的两个数分在一组, 每次比较两个相邻的数,将较大值交换至这两个数的左边,较小值放于右边。
对大者组扫描一次找出最大值,对小者组扫描一次找出最小值。
代码(略)
比较1.5N-2次,但需要改变数组结构
解法三:
每次比较相邻两个数,较大者与MAX比较,较小者与MIN比较,找出最大值和最小值。需比较1.5/N-2次。
解法四:
分治法,算出前N/2个数的MAX和MIN,再算出后N/2个数的MAX和MIN。需比较1.5/N-2次。