数组内的极值问题
给定一个数组a{1,3,5,7,9,0,2,4,6,8},找出最大值M和最小值m
方法一:
public class ArrayJiZhi{
public static void main(String[] args){
int[] a = new int[]{1,3,5,7,9,0,2,4,6,8};
int M = a[0];//确保M是数组中的元素
int m = a[0];//确保m是数组中的元素
for(int i=1;i<a.length;i++){//从i=1开始找,优化代码,减少一次循环
if(M<a[i]){
M=a[i];
}
if(m>a[i]){
m=a[i];
}
}
System.out.println(M);
System.out.println(m);
}
}
方法二:
public class ArrayJiZhi1{
public static void main(String[] args){
int[] a = new int[]{1,3,5,7,9,0,2,4,6,8};
int M=0;
int m=0;
for(int i=1;i<a.length;i++){
if(a[i-1]>a[i]){
int temp = a[i];
a[i]=a[i-1];
a[i-1]=temp;
}
}
M=a[a.length-1];
for(int i=1;i<a.length;i++){
if(a[i-1]<a[i]){
int temp=a[i];
a[i]=a[i-1];
a[i-1]=temp;
}
}
m=a[a.length-1];
System.out.println("最大值和最小值分别为"+M+"和"+m);
}
}