public static int getMax(int[] arr){
return process(arr ,0 ,arr.length-1);
}
//求最大值
public static int process(int[] arr ,int L ,int R){
if(L == R){//arr[L~R]范围上只有一个数,直接返回
return arr[L];
}
int mid =L + ((R - L) >> 1);//中点
//二叉树的后序遍历
int leftMax = process(arr , L ,mid);
int rightMax = process(arr ,mid+1 ,R);
return Math.max(leftMax ,rightMax);
}
public static void main(String[] args) {
int[] arr ={3,5,7,2,11,6,1,9};
System.out.println("最大值"+getMax(arr));
}
04-24
10-17
500
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
12-10
3070
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)