编辑代码

#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;
}