package com.trfizeng.fenzhifa; /** * * @author trfizeng * 思想:就是把复杂问题简单化,将一个大问题分割成许多小问题,再分别解出决对应的小问题的集合就是大问题的解 * */ public class MaxAndMin { public static void main(String[] args) { int[] Array = { -18, -16, 9, -5, 7, -40, 0, 35 ,-2 }; System.out.println("max:" + Max(Array, 0, Array.length - 1) + " min:" + Min(Array, 0, Array.length - 1)); } public static Integer Max(int[] Array, int L, int R) { if (L <= R && R < Array.length) { int Max1; int Max2; int Mid; if (L == R) {//数组只有一个数的时候 return Array[L]; }else if(R - L == 1){//数组里面只有2个数的时候 return Array[L] > Array[R] ? Array[L] : Array[R]; }else{ Mid = (L + R) / 2; Max1 = Max(Array, L, Mid); Max2 = Max(Array, Mid + 1, R); return Max1 > Max2 ? Max1 : Max2; } } return null; } public static Integer Min(int[] Array, int L, int R) { if (L <= R && R < Array.length) { int Min1; int Min2; int Mid; if (L == R) {//数组只有一个数的时候 return Array[L]; }else if(R - L == 1){//数组里面只有2个数的时候 return Array[L] < Array[R] ? Array[L] : Array[R]; }else{ Mid = (L + R) / 2; Min1 = Min(Array, L, Mid); Min2 = Min(Array, Mid + 1, R); return Min1 < Min2 ? Min1 : Min2; } } return null; } }
print:
max:35 min:-40
时间: 2024-08-23 22:55:11