Java教程

分治求数组最大值JAVA实现

本文主要是介绍分治求数组最大值JAVA实现,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

分治思想求数组最大值

/*
* 分治法:
* 1.将问题分割为局部问题(Divide);
* 2.递归地求解局部问题(Solve);
* 3.将局部问题的解整合,解决原问题(Conquer)。
* */

public class DivideConquerDemo {
    public static void main(String[] args) {
        int[] arr = new int[]{1,6,8,9,2,4,6,18,3,5,7,9,2,5};
        int n = arr.length;
        System.out.println("数组最大的数是:" + findMax(arr, 0, n-1));
    }

    public static int findMax(int[] A, int l, int r){
        int m = (l+r)/2;
        int x, u, v;
        if(l==r-1){return A[l];}
        else{
            u = findMax(A,l,m);
            v = findMax(A,m,r);
            x = Math.max(u,v);
        }
        return x;
    }
}

这篇关于分治求数组最大值JAVA实现的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!