递归
时间复杂度计算
用递归的方式找数组中的最大值
递归的本质是系统帮你压栈,第一次走到第十行时,开始自己调用自己,把第十行的信息压入栈中,包括行号10,L=0,mid=1,然后从头开始,走到第十行时把信息压栈,行号10,L=0,mid=0,从头开始,L==R,把arr[0]的值传给leftMax
package basic_class_01;
//用递归的方式找数组的最大值
public class RecursionArray {
public static int getmax(int[] arr,int L,int R){
if(L == R)
{
return arr[L];
}
int mid = (L+R)/2;
int leftMax = getmax(arr,L,mid);
int rightMax = getmax(arr,mid+1,R);
return Math.max(leftMax, rightMax);
}
public static void main(String args[]){
int arr[] = {4,3,2,1};
System.out.print(getmax(arr,0,arr.length-1));
}
}
时间复杂度a=2,b=2,d=0,所以时间复杂度为O(n)