题目描述
学校正在选举学生会成员,有n(n<=999)名候选人,每名候选人编号分别从1到 n,现在收集到了m(m<=2000000)张选票,每张选票都写了一个候选人编号。现在想把这些堆积如山的选票按照投票数字从小到大排序。输入 nn 和 mm 以及 mm 个选票上的数字,求出排序后的选票编号。
输入
5 10
2 5 2 2 5 2 2 2 1 2
输出
1 2 2 2 2 2 2 2 5 5
源代码(木桶排序):
#include<bits/stdc++.h>
using namespace std;
long long b[1001],n,m,k;
int main() {
cin>>m>>n;
for(long long i=1; i<=n; ++i) {
cin>>k; b[k]++;
}
for(long long i=1; i<=m; i++) {
while(b[i]>0) {
cout<<i<<" ";
b[i]--;
}
}
return 0;
}
运行结果: