#include<iostream>
using namespace std;
void minmax(int sz[], int n, int *max_num, int *min_num);
int main(){
int max_num, min_num;
int sz[9] = {1, 6, 3, 5,9};
minmax(sz, 5, &max_num, &min_num);
cout << max_num << '\t' << min_num << endl;
return 0;
}
void minmax(int sz[], int n, int *max_num, int *min_num){
int min1, max1, min2, max2;
if(n==1){
*max_num = sz[0];
*min_num = sz[0];
}
else if(n == 2){
*max_num = sz[0] > sz[1]?sz[0]: sz[1];
*min_num = sz[0] < sz[1]?sz[0]: sz[1];
}
else{
minmax(sz, n/2, &max1, &min1);
minmax(sz + n/2, n-n/2,&max2, &min2);
*min_num = min1 < min2?min1:min2;
*max_num = max1 > max2?max1:max2;
}
//cout << *min_num << '\t' << *max_num << endl;
}
运行结果:
9 1