寻找数组中的最大值和最小值
解法1:遍历两次,分别求出最大值、最小值。需要比较2*N次。
解法2:按顺序将数组中相邻的两个元素看成一组,遍历数组,调整每一组中两个元素的顺序,使大的数在偶数位上,小的数在奇数位上。然后分别从奇数位、偶数位上求出最大最小值,总的比较次数为1.5*N次。
解法3:不破坏原数组,仍然将数组每相邻两位看成一组,定义两个变量min、max,遍历数组,相邻两位比较,然后得到的大者与max比较,小者与min比较。总的比较次数仍为1.5*N。
解法4:采用分治算法,分别求出前后N/2个数的min和max,然后取较小的min及较大的max。但是总的比较次数仍为1.5*N。
解法1:遍历两次,分别求出最大值、最小值。需要比较2*N次。
解法2:按顺序将数组中相邻的两个元素看成一组,遍历数组,调整每一组中两个元素的顺序,使大的数在偶数位上,小的数在奇数位上。然后分别从奇数位、偶数位上求出最大最小值,总的比较次数为1.5*N次。
解法3:不破坏原数组,仍然将数组每相邻两位看成一组,定义两个变量min、max,遍历数组,相邻两位比较,然后得到的大者与max比较,小者与min比较。总的比较次数仍为1.5*N。
解法4:采用分治算法,分别求出前后N/2个数的min和max,然后取较小的min及较大的max。但是总的比较次数仍为1.5*N。