public class GetMax {
/*
* 用递归的思路实现一个数组的最大值
*/
public static int getMax(int[] arr, int L, int R) {
if (L == R) {
return arr[L];
}
int mid = (L + R) / 2;
int maxLeft = getMax(arr, L, mid);
int maxRight = getMax(arr, mid + 1, R);
return Math.max(maxLeft, maxRight);// 返回两个数较大的一个
}
public static int getMin(int[] arr,int L,int R) {
if (L==R) {
return arr[L];
}
int mid=(L+R)>>1;
int minLeft=getMin(arr, L, mid);
int minRight = getMin(arr, mid + 1, R);
return Math.min(minLeft, minRight);
}
public static void main(String[] args) {
int[] arr = { 1, 8, 9, 20, 5, -6, 2, 5, 8, 0 };
int i = getMax(arr, 0, arr.length - 1);
int j=getMin(arr, 0, arr.length - 1);
System.out.println("最大值"+i+" "+"最小值"+j);
}
}
Java经典算法题—用递归求最大值和最小值
猜你喜欢
转载自blog.csdn.net/weixin_40440225/article/details/84572235
今日推荐
周排行