#include<stdio.h>
typedef struct
{
int max;
int min;
}S;
S MAXMIN(int i,int j,int b[]){
S s,SL,SR;
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;
SL=MAXMIN(i,mid,b);
SR=MAXMIN(mid+1,j,b);
if(SL.max>SR.max)
s.max=SL.max;
else
s.max=SR.max;
if(SL.min>SR.min)
s.min=SR.min;
else
s.min=SL.min;
return s;
}
void main(){
int k,n,a[100];
S d;
printf("输入问题规模n:");
scanf("%d",&n);
printf("输入问题的数字:");
for(k=0;k<=n-1;k++)
{
scanf("%d",&a[k]);
}
d=MAXMIN(0,n-1,a);
printf("最大值为:%d,最小值为:%d\n",d.max,d.min);
system("pause");
}