#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<vector>
using namespace std;
int max(int a,int b){return a>b?a:b;}
int min(int a,int b){return a>b?b:a;}
typedef struct
{
int max;
int min;
} T ;
int n;
int arr[100];
T P(int i,int j)
{
if(i==j)
{
T t;
t.max=arr[i];
t.min=arr[j];
return t;
}
if(i+1==j)
{
T t;
t.max=max(arr[i],arr[j]);
t.min=min(arr[i],arr[j]);
return t;
}
T t;
t.max=max(P(i,(i+j)/2).max,P((i+j)/2+1,j).max );
t.min=min(P(i,(i+j)/2).min,P((i+j)/2+1,j).min );
return t;
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
cin>>arr[i];
T t=P(0,n-1);
cout<<t.max<<" "<<t.min<<endl;
return 0;
}
分治法求最大最小值
猜你喜欢
转载自blog.csdn.net/cj151525/article/details/90136947
今日推荐
周排行