作业帮 > 综合 > 作业

给定n个数,在最坏情况下用╔ 3n/2-2 ╕次比较找出这n个数中元素的最大值和最小值

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 07:11:47
给定n个数,在最坏情况下用╔ 3n/2-2 ╕次比较找出这n个数中元素的最大值和最小值
Input
包含多组测试数据.每组测试数据的第一个元素是整数的个数n,接下来是n个整数.0表示结束. n
ACM吧,
#include
using namespace std;
void MaxAndMin(int *a,int left,int right,int& max,int& min)
{
int num=right-left+1;
if (num==1)
{
max=a[left];
min=a[left];
return ;
}
if (num==2)
{
if (a[left]>a[right])
{
max=a[left];
min=a[right];
return ;
}
else
{
max=a[right];
min=a[left];
return;
}
}
else
{
int mid=(left+right)/2;
int maxr,minr,maxl,minl;
MaxAndMin(a,left,mid,maxl,minl);
MaxAndMin(a,mid+1,right,maxr,minr);
if (maxl>maxr)
max=maxl;
else
max=maxr;
if (minl>num;
if(num)
{
a=new int[num+1];
a[0]=0;
for(int i=1;i>a[i];
}
int max,min;
MaxAndMin(a,1,num,max,min);
cout