欢迎访问宙启技术站
智能推送

如何在Java中使用函数来查找一个数组中的最大值和最小值?

发布时间:2023-05-30 20:51:23

在Java语言中,要查找一个数组中的最大值和最小值可以使用以下方法:

1. 线性查找法

利用遍历数组,逐个比较大小的方式,找到数组中的最大值和最小值。

代码实现:

public static void findMaxAndMin(int[] arr){
    int max = arr[0];
    int min = arr[0];
    for(int i=1;i<arr.length;i++){
        if(arr[i]>max){
            max = arr[i];
        }
        if(arr[i]<min){
            min = arr[i];
        }
    }
    System.out.println("最大值:" + max + ",最小值:" + min);
}

2. 内置排序法

利用Java内置的排序算法将数组排序,然后取数组的 个和最后一个元素,即为数组的最大值和最小值。

代码实现:

public static void findMaxAndMin(int[] arr){
    Arrays.sort(arr);
    System.out.println("最大值:" + arr[arr.length-1] + ",最小值:" + arr[0]);
}

3. 分治法

将数组分成两个子数组,分别求子数组的最大值和最小值,再将子数组的最大值和最小值与整个数组的最大值和最小值比较,得到整个数组的最大值和最小值。

代码实现:

public static void findMaxAndMin(int[] arr, int low, int high){
    int max = arr[low];
    int min = arr[low];
    //数组中只有一个元素
    if(low==high){
        max = arr[low];
        min = arr[low];
    }
    //数组中有2个元素
    else if(low+1==high){
        if(arr[low]>arr[high]){
            max = arr[low];
            min = arr[high];
        }else{
            max = arr[high];
            min = arr[low];
        }
    }
    //数组中有多个元素,递归找到最大值和最小值
    else{
        int mid = (low+high)/2;
        findMaxAndMin(arr,low,mid);
        int max1 = max;
        int min1 = min;
        findMaxAndMin(arr,mid+1,high);
        if(max1>max){
            max = max1;
        }
        if(min1<min){
            min = min1;
        }
    }
    System.out.println("最大值:" + max + ",最小值:" + min);
}

以上是三种在Java中查找数组最大值和最小值的常用方法,可以根据实际情况选择合适的方法使用。