排序-刷题
上一个博客已经给大家介绍了三种排序算法:冒泡排序,插入排序和选择排序,那么这个博客我们一起来做一道例题 P1097
P1097 统计数字
题目描述
某次科研调查时得到了nn个自然数,每个数均不超过1500000000(1.5*10^9)。已知不相同的数不超过1000010000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果
输入格式
共n+1行。
第一行是整数n,表示自然数的个数;
第2至n+1每行一个自然数。
输出格式
共m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。
每行输出2个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。
解析
审题
先审题,均不超过1.5*109,int的最大数量级是109,要开long long!!!再看n的数据范围是n≤20000,数组要开全局!!!
思路
此题要求从小到大输出,从这一点我们就可以联想到用排序。排序完后,再去统计每个元素相同的个数。怎么统计相同元素的个数?首先,我们现在遍历数组的循环外定义一个计数变量将它设为1,然后从数组的第二个元素开始遍历