如何寻找数组中的最小值与最大值

java程序员面试笔试宝典P260勘误!!!

bug:当数组中只有最后一个元素时,怎么处理?

当程序中除第一个元素后,剩下的的元素时偶数个的话,就不用考虑剩下最后一个了。

但是如果是奇数的话,两两相邻元素比较后,必然会剩下最后一个元素。

/**
 * Created by ahu_lichang on 2017/8/10.
 */
public class MaxMin {
    static int Max;
    static int Min;

    public static void GetMaxAndMin(int[] arr){
        Max = arr[0];//第一个元素
        Min = arr[0];
        int len = arr.length;
        for(int i=1;i<len-1;i=i+2){//从第二个元素开始相邻的元素两两比较
/*            if(i+1>len){//不晓得在干嘛?(书中代码)
                if(arr[i]>Max)
                    Max = arr[i];
                if(arr[i]<Min)
                    Min = arr[i];
            }*/
            if(arr[i]>arr[i+1]){
                if(arr[i]>Max)
                    Max = arr[i];
                if(arr[i+1]<Min)
                    Min = arr[i+1];
            }
            if(arr[i]<arr[i+1]){
                if(arr[i]<Min)
                    Min = arr[i];
                if(arr[i+1]>Max)
                    Max = arr[i+1];
            }
        }
        if(arr[len-1]>Max){  //判断最后一个元素!!!(自己修改代码)
            Max = arr[len-1];
        }else{
            Min = arr[len-1];
        }
    }

    public static void main(String[] args){
        int[] array = {7,3,19,40,4,7,1,0};
        GetMaxAndMin(array);
        System.out.println("Max=" + Max);
        System.out.println("Min=" + Min);
    }
}

 

posted @ 2017-08-10 18:39  ahu-lichang  阅读(518)  评论(0编辑  收藏  举报