二分求最大值
#include<iostream>
using namespace std;
int getMax(int array[], int begin, int end){
int Max1 = 0;
int Max2 = 0;
if (begin == end) {//划分到最后,剩余1个数
return array[begin] = array[end];
}
else if(begin+1==end){//划分到最后,剩余2个数
return array[begin]> array[end]?array[begin]: array[end];//谁大返回谁。
}
else{//如果剩余的数多于2个,划分成两段,选出这两段的最大值
int mid=(begin+end)/2;
Max1=getMax(array,begin,mid);
Max2=getMax(array,mid+1,end);
return Max1>Max2?Max1:Max2;
}
};