给定n个数,在最坏情况下用╔ 3n/2-2 ╕次比较找出这n个数中元素的最大值和最小值Input包含多组测试数据.每组测试数据的第一个元素是整数的个数n,接下来是n个整数.0表示结束. n
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/01 23:53:49
![给定n个数,在最坏情况下用╔ 3n/2-2 ╕次比较找出这n个数中元素的最大值和最小值Input包含多组测试数据.每组测试数据的第一个元素是整数的个数n,接下来是n个整数.0表示结束. n](/uploads/image/z/12964510-46-0.jpg?t=%E7%BB%99%E5%AE%9An%E4%B8%AA%E6%95%B0%2C%E5%9C%A8%E6%9C%80%E5%9D%8F%E6%83%85%E5%86%B5%E4%B8%8B%E7%94%A8%E2%95%94+3n%2F2%EF%BC%8D2+%E2%95%95%E6%AC%A1%E6%AF%94%E8%BE%83%E6%89%BE%E5%87%BA%E8%BF%99n%E4%B8%AA%E6%95%B0%E4%B8%AD%E5%85%83%E7%B4%A0%E7%9A%84%E6%9C%80%E5%A4%A7%E5%80%BC%E5%92%8C%E6%9C%80%E5%B0%8F%E5%80%BCInput%E5%8C%85%E5%90%AB%E5%A4%9A%E7%BB%84%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE.%E6%AF%8F%E7%BB%84%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE%E7%9A%84%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%85%83%E7%B4%A0%E6%98%AF%E6%95%B4%E6%95%B0%E7%9A%84%E4%B8%AA%E6%95%B0n%2C%E6%8E%A5%E4%B8%8B%E6%9D%A5%E6%98%AFn%E4%B8%AA%E6%95%B4%E6%95%B0.0%E8%A1%A8%E7%A4%BA%E7%BB%93%E6%9D%9F.+n)
给定n个数,在最坏情况下用╔ 3n/2-2 ╕次比较找出这n个数中元素的最大值和最小值Input包含多组测试数据.每组测试数据的第一个元素是整数的个数n,接下来是n个整数.0表示结束. n
给定n个数,在最坏情况下用╔ 3n/2-2 ╕次比较找出这n个数中元素的最大值和最小值
Input
包含多组测试数据.每组测试数据的第一个元素是整数的个数n,接下来是n个整数.0表示结束. n
给定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
设置两个变量max和min,一个保存当前最大的,一个保存当前最小的。
每次取两个,进行比较,大的和max比,小的和min比,直道结束。
设总的数据量是n,则总的比较次数是3n/2 - 2
1.减2是对第一次
2.每次取2个数,供需n/2次。每次比较3次,供需比较3*n/2次...
全部展开
设置两个变量max和min,一个保存当前最大的,一个保存当前最小的。
每次取两个,进行比较,大的和max比,小的和min比,直道结束。
设总的数据量是n,则总的比较次数是3n/2 - 2
1.减2是对第一次
2.每次取2个数,供需n/2次。每次比较3次,供需比较3*n/2次
收起