如何在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中查找数组最大值和最小值的常用方法,可以根据实际情况选择合适的方法使用。
