200249 - 利用数组下标来排序和统计
给出n个0-9之间整数,按0-9的顺序输出每个数字出现的次数。
输入
第一行,一个整数n,表示数据个数。
第二行,n个0-9之间的整数,表示各个数据。
对于100%的数据:
1\le n \le 10^2。
输出
一行,表示0-9出现的次数。
样例
输入
3 9 5 0
输出
1 0 0 0 0 1 0 0 0 1
输入
9 0 0 0 0 0 0 0 0 0
输出
9 0 0 0 0 0 0 0 0 0
输入
11 0 1 2 3 4 5 6 7 8 9 0
输出
2 1 1 1 1 1 1 1 1 1
提示
作为初学者最容易想到的方法是把输入读到数组里,然后循环查找0出现的次数,1出现的次数,2出现的次数……这样可以完成任务,但如果我们充分利用数组下标,就可以发现一个非常牛的方法:
将对应的数字累加在相同的下标里,例如:0的个数记录在a[0]里,1的个数记录在a[1]里;即cin>>v;a[v]++;
奇迹就这样发生了:当循环结束时,a[0]中保存的就是输入中有多少个0,a[1]中保存的就是输入中有多少个1...a[9]中保存的就是输入了多少个9。
当读入完数据时,排序已经结束了,只需用循环把a[0]到a[9]中的数字(当前下标输入了多少次)输出即可!
当你自己写好这份代码时,你就学会了桶排序——一种既简单又高效的排序算法。