给n个整数,按从大到小的顺序输出其中前m大的数。
输入:每组测试数据有两行,第一行有两个数n, m(0 < n, m < 1000000),第二行包含n个各不相同,且都处于区间[-500000,500000]的整数。
输出:对每组测试数据按从大到小的顺序输出前m大的数。
注:须采用冒泡排序算法,给出不同规模的输入(不同的n和m)下的结果和运行时间。
输入样例
5 3
3 -35 92 213 -644
输出样例
213 92 3
#include<bits/stdc++.h>
#include<time.h>
using namespace std;
int main()
{
long long m,n,temp;
clock_t start, finish;//计时函数
cin>>n>>m;
long long *a=new long long [n+2];
for(long long i=0;i<n;i++)
{
cin>>a[i];
}
start = clock();//开始计时
for(long long i=1;i<n;i++)
{
for(long long j=0;j<n-i;j++)
{
if(a[j]<a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
finish = clock();//结束计时
for(long long i=0;i<m;i++)
{
cout<<a[i]<<" ";
}
cout<< "用时"<<(double)(finish-start)/CLOCKS_PER_SEC<<"s"<<endl;//输出执行循环需要的时间(s)
return 0;
}
程序接收两个参数n和m,以及n个整数,通过冒泡排序算法找出并输出这n个整数中最大的m个。程序还计算并显示了执行时间,用于性能评估。
389

被折叠的 条评论
为什么被折叠?



