分治思想求数组最大值
/* * 分治法: * 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; } }