编辑代码

#include <iostream>
using namespace std;
void Value(int arr[],int x,int y,int *Max,int *Min)
{
    if(y-x<=1)//比较
    {
        if(arr[x]>arr[y])
        {
            *Max=arr[x];
            *Min=arr[y];
            return;
        }
        else
        {
            *Max=arr[y];
            *Min=arr[x];
            return;
        }
    }
        int mid=(x+y)/2;//分为两份
    int min1,min2,max1,max2;//分组比较
    Value(arr,x,mid,&max1,&min1);//分组的左侧
    Value(arr,mid+1,y,&max2,&min2);//分组的右侧
    *Max=max1>max2?max1:max2;//最大值比较
    *Min= min1<min2?min1:min2;//最小值比较
}
int main()
{
    int maxv=0;
    int minv=0;
    int arr[]={11,9,20,56,42,3,7,15,16};
    Value(arr,0,7,&maxv,&minv);
    cout<<"最大值为:"<<maxv<<endl;
    cout<<"最小值为:"<<minv<<endl;
    return 0;
}