#include<stdio.h>
#include<windows.h>
typedef struct
{
int max;
int min;
}X;
X MM(int i,int j,int b[]){
X s,x,y;
int mid;
if(i==j)
{
s.max=s.min=b[i];
return s;
}
if(i==j-1)
{
if(b[i]>=b[j])
{
s.max=b[i];
s.min=b[j];
return s;
}
if(b[i]<b[j])
{
s.max=b[j];
s.min=b[i];
return s;
}
}
mid=(i+j)/2;
x=MM(i,mid,b);
y=MM(mid+1,j,b);
if(x.max>y.max)
s.max=x.max;
else
s.max=y.max;
if(x.min>y.min)
s.min=y.min;
else
s.min=x.min;
return s;
}
int main()
{
int k,n,a[99];
X d;
printf("输入序列元素个数:");
scanf("%d",&n);
printf("输入序列元素:");
for(k=0;k<=n-1;k++)
{
scanf("%d",&a[k]);
}
d=MM(0,n-1,a);
printf("最大值为:%d\n最小值为:%d\n",d.max,d.min);
system("pause");
return 0;
}