//递归
public class Recursion {
//用递归求数组最大值
public static int getMax(int[] arr) {
return process(arr, 0, arr.length - 1);
}
//arr[]求最大值
public static int process(int[] arr, int L, int R) {
if(L == R) {//如果arr数组上只有一个数 直接返回
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);
}
}
递归行为时间复杂度估计
master公式:T(N) = a*T(N/b) + O(N^d)
1) log(b,a) > d -> 复杂度为O(N^log(b,a))
2)log(b,a) = d -> 复杂度为O(N^d * logN)
3)log(b,a) < d -> 复杂度为O(N^d)