二分求最大值

#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;
	}
};
posted @ 2018-07-23 21:01  雪卿狂  阅读(317)  评论(0编辑  收藏  举报