一个程序看懂归并

#include<iostream>
#include<math.h>
int MAX(int *a,int begin,int end);

int  main(){
	int max;
	int a[8]={4,3,6,7,3,5,1,0};
	max=MAX(a,0,7);
	//	printf("%d",max);
	
	return 0;
}

int MAX(int *a,int begin,int end){
	int mid=floor((begin+end)/2);
	printf("mid:%d",mid);
	int x,y,max;



	if(begin<end){
		printf("begin:%d",begin);
		printf("end:%d\n",end);
		x=MAX(a,begin,mid);
		printf("x:%d\n",x);
		y=MAX(a,mid+1,end);
		printf("y:%d\n",y);
		max=(x>y?x:y);
		printf("max:%d\n",max);
		return max;
	}

	printf("a[begin]:%d",a[begin]);
	return a[begin];
	
}

猜你喜欢

转载自blog.csdn.net/qq_40301016/article/details/82934390