java中用递归方法求数组的最大值
原创
©著作权归作者所有:来自51CTO博客作者rockeybalboa的原创作品,请联系作者获取转载授权,否则将追究法律责任
用递归方法求数组的最大值 ,二分法找最大值
递归过程就是压栈的过程
import java.util.Scanner;
public class code08 {
/*
用递归求数组中最大值问题
* */
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){
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) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine().toString();
String[] arr=str.split(" ");
int[] b=new int[arr.length];
for(int i=0;i<b.length;i++){
b[i]=Integer.parseInt(arr[i]);
// System.out.println(b[i]);
}
int max = getMax(b);
System.out.println(max);
}
}
结果如下图所示:
新创建一个公众号 Rockey小何同学 想相互交流的同学可以关注一下哈! 感谢支持!