没有难度,但是请注意输出格式!
#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
int m, n, i, b;
vector<int>a;
cin >> m >> n;
for (i = 0; i<m; i++)
{
cin >> b;
a.push_back(b);
}
sort(a.begin(), a.end());
for (i = 0; i<n - 1; i++)
cout << a[i] << ' ';
cout << a[i] << endl;
}结论:这道题时间复杂度最小的解法是维护一个含有k个元素的大根堆,遇到比堆顶小的元素才重新调整!!!
本文介绍了一种使用大根堆优化排序算法的方法,通过维护一个大小为k的堆来减少时间复杂度,特别适合处理大规模数据排序场景。
2150

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



