当前位置: 代码迷 >> 综合 >> java用递归找到最大的值的两种方法
  详细解决方案

java用递归找到最大的值的两种方法

热度:61   发布时间:2023-09-19 12:53:23.0

1.和某个数比较大的话就保留,否者替代这个数

public class Main {public static void main(String[] args) {//求出一个数组中的最大值int[] arr = {3, 5, 6,100, 9, 10, 12};System.out.println( "max:" + maxValue( arr ) );   //输出 100}public static int maxValue(int[] arr) {int tmp=0;for (int i = 0; i < arr.length; i++) {tmp = tmp > arr[i] ? tmp : arr[i];}return tmp;}

 

 2.把数组分为左右两个部分,分别找到左右两个部分的最大值,然后返回两个值中最大的值

public class Main {public static void main(String[] args) {//求出一个数组中的最大值int[] arr = {3, 5, 6,100, 9, 10, 12};System.out.println( "max:" + maxValue( arr ) ); //输出100}public static int recursionMaxValue(int[] arr,int left,int right ) {int mid=(left+right)/2;if (left==right) {return arr[left];} else {return Math.max( recursionMaxValue( arr, left, mid ), recursionMaxValue( arr, mid + 1, right ) );}}

 

 3.当然你如果不嫌麻烦你可以把数组分为三个部分,分别求出最大值,然后计算出三个最大值中的最大值