求数组中的最大最小值
求数组中最大最小值的几种方法:
- 问题分解法:遍历两次数组,反别求出最大值和最小值
- 取单元素法:两个变量,变量min标记最小值,变量max标记最大值,每次循环取出一个元素来与最大值最小值比较。
- 取双元素法:两个变量,变量min标记最小值,变量max标记最大值,每次循环取出两个元素,先比较两个元素的大小,小的和最小值比较,大的和最大值作比较。
- 数组元素位移法:将数组中相邻两个数分在一组,每次比较两个相邻的数,将较大的交换至这两个数的左边,较小的放到右边。对大组遍历一遍找出最大值,对小组遍历一遍找出最小值。
- 分治法:将数组分为两半,分别找出最小值和最大值,再找出两个最小值里的最小值,两个最大值里面的最大值。
用取双元素法求最大最小值:
package shuzu;
public class MaxMin {
//求数组中的最带最小值(去双元素)
static int Max;
static int Min;
public static void GetMaxAndMin(int array[]) {
Max = array[0];
Min = array[0];
int len = array.length;
for(int i = 0;i < len-1 ; i = i+2) {
if(i+1>len) {
if(array[i]>Max)
Max = array[i];
if(array[i]<Min)
Min = array[i];
}
if(array[i]>array[i+1]) {
if(array[i]>Max)
Max = array[i];
if(array[i+1]<Min)
Min = array[i+1];
}
if(array[i]<array[i+1]) {
if(array[i]<Min)
Min = array[i];
if(array[i+1]>Max)
Max = array[i+1];
}
}
}
public static void main(String[] args) {
int array[] = {
4,1,7,5,2,8,3,9};
GetMaxAndMin(array);
System.out.println("最大值为:"+Max);
System.out.println("最小值为:"+Min);
}
}
- 运行截图:
还没有评论,来说两句吧...