分治法求数组的最大元素

#include
using namespace std;

//[) 左闭右开
int findMax(int a[],int l,int r)
{
	int x;
	int m=l+(r-l)/2;		//防止过大溢出
	if(r-l==1)return a[l];	//只有一个元素
	else
	{
		//分治法
		int u=findMax(a,l,m);
		int v=findMax(a,m,r);
		x=max(u,v);
	}
	return x;
}

int main()
{
	int N=10;
	int a[N]= {1,2,3,4,5,6,7,8,9,10};
	cout<

运行结果:

分治法求数组的最大元素_第1张图片

你可能感兴趣的:(ACM,分治)