编辑代码

#include <iostream>
 using namespace std;

 void FindMaxAndMin(int a[], int begin, int end, int* pmax, int* pmin)
 {     if (end - begin <= 1)
	{
	   if (a[begin] <= a[end])
			        {
		* pmax = a[end];
		 * pmin = a[begin];
		 return;
	 }
	else
	{
  * pmin = a[end];
  * pmax = a[begin];
 return;
			         }
	 }
  int min1, min2, max1, max2;
	 int mid = (begin + end) / 2;
	 FindMaxAndMin(a, begin, mid, &max1, &min1);
	FindMaxAndMin(a, mid + 1, end, &max2, &min2);
	* pmin = min1 < min2 ? min1 : min2;
	 * pmax = max1 < max2 ? max2 : max1;
	}
int main()
{
 int a[] = { 11, 9, 20, 56, 42, 3, 7,15,16 };
 int max, min;
 FindMaxAndMin(a, 0, 10, &max, &min);
 cout << "the max num is:" << max << ",  the min num is:" << min << endl;
 return 0;
}