java找出数组指定范围中的最大值


public class Test {
    public static void main(String[] args) {
        int[] aa = {1,1,5,6,1111,44444,151,2,5,2,3,Integer.MAX_VALUE};
        int res = getMax(aa);
        System.out.println(res);
    }

    public static int getMax(int[] arr){
        return recursion(arr,0, arr.length-1);
    }
	/**
     * 
     * @param arr 数组
     * @param L 左边起始位置
     * @param R 右边终点位置
     * @return
     */
    public static int recursion(int[] arr ,int L ,int R) {
        if(L == R){
            return arr[L];
        }
        int mid = L +((R - L)>>1);//中点
        int leftMax = recursion(arr,L,mid);//左边最大值
        int rightMax = recursion(arr,mid+1,R);//右边最大值
        return Math.max(leftMax,rightMax);//左右比较,返回最大值

    }
}