#include<iostream>
using namespace std;
typedef struct
{
int max;
int min;
}S;
S MAXMIN(int i, size_t 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;
}
int main()
{
int a[9] = { 11, 9, 20, 56, 42, 3, 7, 15, 16 };
S d;
d=MAXMIN(0, 8, a);
cout << "最大值为:" << d.max << endl;
cout << "最小值为:" << d.min << endl;
}