T216135 ch5: 初级桶排序
题目描述
小 J 最近终于学到了数组,他知道使用数组就可以对一个数列进行排序了!
今天,他小试牛刀,使用数组来对 $n$ 个数字进行排序。你也会做吗?
输入格式
第一行一个正整数 $n(0 \lt n \le 10^4)$
第二行连续输入 $n$ 个不大于 $10^4$ 的非负整数。
输出格式
一行,输出这 $n$ 个数从小到大排序后的结果,中间用一个空格隔开。如果一个数出现了多次,在排序结果里只写一次即可。
说明/提示
### 桶排序
通过观察我们发现连续输入 $n$ 个不大于 $10^4$ 的非负整数,这样的数刚好可以用来做数组的下标。
我们现在对数组的使用方法还只有一种:

`a[i] = x;` 表示第 $i$ 个数是 $x$。
现在我们想想,它还能不能反着用呢?
`b[x]=1;` 代表什么呢?
表示 $x$ 在 $a$ 数组中出现了 1 次。
$b$ 数组我们称之为“桶”,用来记录一个数在另一个数组中出现的次数。
我们令 $i$ 从 0 开始,循环到输入的数的最大值结束,只要 $b[i]$ 不为 0,就将 $i$ 输出即可。
**特别注意:$b$数组的大小与输入的数的最大值有关,且输入的数必须全部为自然数,可以作为数组下标。**