P1271 【深基9.例1】选举学生会
题目描述
学校正在选举学生会成员,有 n ( n ≤ 999 ) n(n\le 999) n(n≤999) 名候选人,每名候选人编号分别从 1 到 n,现在收集到了 m ( m < = 2000000 ) m(m<=2000000) m(m<=2000000) 张选票,每张选票都写了一个候选人编号。现在想把这些堆积如山的选票按照投票数字从小到大排序。
输入格式
输入 n 和 m 以及 m 个选票上的数字。
输出格式
求出排序后的选票编号。
输入输出样例
输入
5 10
2 5 2 2 5 2 2 2 1 2
输出
1 2 2 2 2 2 2 2 5 5
代码如下
#include<iostream>
using namespace std;
int a[1010];
int main(){
int n,m,i,j,x;
cin>>n>>m;
for(i=1; i<=m; i++){
//输入投票数据
cin>>x;
a[x]+=1;
}
for(i=1; i<=n; i++){
//n个学生,每个学生相当于一个桶
for(j=1; j<=a[i]; j++){
//每个学生的投票数
cout<<i<<" ";
}
}
return 0;
}
P1177 【模板】快速排序
题目描述
利用快速排序算法将读入的 N 个数从小到大排序后输出。
快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C++ 选手请不要试图使用 STL,虽然你可以使用 sort 一遍过,但是你并没有掌握快速排序算法的精髓。)
输入格式
第 1 行为一个正整数 N,第 2 行包含 N 个空格隔开的正整数 a i a_i ai ,为你需要进行排序的数,数据保证了 a i a_i ai 不超过 1 0 9 10^9 109 。
输出格式
将给定的 N 个数从小到大输出,数之间空格隔开,行末换行且无空格。
输入输出样例
输入
5
4 2 4 5 1
输出
1 2 4 4 5
代码如下
#include<iostream>
using namespace std;
const int MAXN=100000010;
int a[MAXN];
int i,j,l,r; //l左边界 r右边界
int n,flag