1. 主页
  2. 文档
  3. Level3题解(1-10)
  4. 第3课 数据排序2
  5. 题解

题解

P1271 【深基9.例1】选举学生会

题目描述

学校正在选举学生会成员,有 n(n≤999) 名候选人,每名候选人编号分别从 1 到 n,现在收集到了 m(m<=2000000) 张选票,每张选票都写了一个候选人编号。现在想把这些堆积如山的选票按照投票数字从小到大排序。输入 n 和 m 以及 m 个选票上的数字,求出排序后的选票编号。

输入格式

输出格式

输入输出样例

输入 #1复制

5 102 5 2 2 5 2 2 2 1 2

输出 #1复制

1 2 2 2 2 2 2 2 5 5

直接桶排序代码

#include <bits/stdc++.h>
using namespace std;

const int  MAXN = 1002;
int a[MAXN];
int n, m;

int main()
{
	int tmp;

	scanf("%d %d", &n, &m);
	for(int i = 1; i <= m; i++) {
		scanf("%d", &tmp);
		a[tmp]++;
	}

	for(int i = 1; i <= n; i++) {
		for(int j = 1; j <= a[i]; j++)
			printf("%d ", i);
	}

	return 0;
}