试题编号: 201503-2
试题名称: 数字排序
时间限制: 1.0s
内存限制: 256.0MB
问题描述:
问题描述
给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。
输入格式
输入的第一行包含一个整数n,表示给定数字的个数。
  第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。
输出格式
输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序输出。如果两个整数出现的次数一样多,则先输出值较小的,然后输出值较大的。
样例输入
12
5 2 3 3 1 3 4 2 5 2 3 5
样例输出
3 4
2 3
5 3
1 1
4 1
评测用例规模与约定
1 ≤ n ≤ 1000,给出的数都是不超过1000的非负整数。

问题链接:CCF201503试题。

问题描述

给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。

问题分析

这是一个统计排序的问题,先统计,后排序。一般用数组进行统计和排序,时空上难以获得完美。使用STL的包装类实现是一个好的选择。

程序说明

使用map进行统计,使用优先队列进行排序,是本程序的关键。

提交后得100分的C++语言程序如下:

/* CCF201503-2 数字排序 */#include <iostream>
#include <map>
#include <queue>using namespace std;struct node {int key, count;bool operator < (const node& n) const {if(count == n.count)return key > n.key;elsereturn count < n.count;}
};int main()
{priority_queue<node> q;map<int, int> m;int n, v;// 输入数据,构建Mapcin >> n;for(int i=0; i<n; i++) {cin >> v;m[v]++;}// 构建优先队列进行排序node keyval;for(map<int,int>::iterator it=m.begin(); it!=m.end(); it++) {keyval.key = it->first;keyval.count = it->second;q.push(keyval);}// 输出结果while(!q.empty()) {keyval = q.top();q.pop();cout << keyval.key << " " << keyval.count << endl;}return 0;
}

 

CCF201503-2 数字排序(100分)相关推荐

  1. 6-1 简单排序 (100分)

    6-1 简单排序 (100分) 设计函数 void bubbleSort(int a[],int n);,实现对整型数组的排序. 输入第一行为一个整数n(0<n<=1000),代表待排序元 ...

  2. 如何给100亿个数字排序

    转自:http://netsmell.com/post/how-sort-10-billion-data.html?ref=myread 海量数据处理/外部归并排序 - 分治.cppp 今天要给100 ...

  3. CCF201612-1 中间数(100分)【序列处理+排序】

    试题编号: 201612-1 试题名称: 中间数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一个整数序列a 1, a 2, -, a n中,如果存在某个数,大于它的整数 ...

  4. 【算法】如何给100亿个数字排序?

    场景 之前写过一篇海量数据中统计ip出现次数最多的博客,今天再写篇类似的,当然会有不同的地方,相同的地方我快速写过,详细的可以看之前的博客. 今天要给100亿个数字排序,100亿个 int 型数字放在 ...

  5. 7-1 模拟EXCEL排序 (25 分)

    7-1 模拟EXCEL排序 (25 分) Excel可以对一组纪录按任意指定列排序.现请编写程序实现类似功能. 输入格式: 输入的第一行包含两个正整数N(≤10 ​5 ​​ ) 和C,其中N是纪录的条 ...

  6. 7-27 冒泡法排序 (20 分)

    7-27 冒泡法排序 (20 分) 将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们.通过一遍扫描,则最后一个元素必定是最大的 ...

  7. R7-9 模拟EXCEL排序 (25 分)

    R7-9 模拟EXCEL排序 (25 分) Excel可以对一组纪录按任意指定列排序.现请编写程序实现类似功能. 输入格式: 输入的第一行包含两个正整数N(≤105) 和C,其中N是纪录的条数,C是指 ...

  8. 基于Hadoop 2.6.0运行数字排序的计算

    上个博客写了Hadoop2.6.0的环境部署,下面写一个简单的基于数字排序的小程序,真正实现分布式的计算,原理就是对多个文件中的数字进行排序,每个文件中每个数字占一行,排序原理是按行读取后分块进行排序 ...

  9. CCF201403-3 命令行选项(100分)

    试题编号: 201403-3 试题名称: 命令行选项 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些选项.每个命令行由 ...

最新文章

  1. html5画布画点,在HTML5画布上绘制一个点
  2. html5 斜率画线,一次函数的斜率与图像的关系
  3. 前端有关vue的面试题
  4. ObjectMapper忽略未知字段
  5. swift 计算label的行数方法
  6. Jenkins进阶-Gitlab使用Webhook实现Push代码自动部署(3)
  7. 刷新查询缓存 mysql_MySQL刷新查询缓存
  8. android studio 2.3.3 最新 中文 汉化包 韩梦飞沙 安卓工作室 美化包
  9. 转载“用USBOOT制作DOS启动盘”
  10. linux cp: 略过目录
  11. 【正点原子FPGA连载】第三十九章OV7725摄像头RGB-LCD显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
  12. 哈希表_实现插入、删除、查找元素操作(链地址法解决冲突)
  13. java 怎么让打印信息换行?
  14. python毕业论文开题报告_本科毕业论文开题报告怎么写-如何写毕业设计的开题报告?...
  15. 【附代码实现】Attention注意力模块的keras\tf实现(ECA、BAM、Coordinate、DualAttention、GlobalContext等)
  16. 网站流量过大服务器不行,网站如何应对突然的大流量访问?
  17. 智能灯泡的应用及使用场景
  18. 福利贴:最全实时音视频开发要用到的开源工程汇总
  19. 【超详细】2021最新版Redis安装教程(基于Redis 6.2.x版本)
  20. 100元的C++软件开发培训班

热门文章

  1. 推荐21个顶级的Vue UI库!
  2. CentOS 7 安装 MySQL 5.6
  3. PHP开发网站全过程技术知识分析
  4. word如何设置上标形式_如何在word里设置删除线、添加着重号、上标和下标?戳这里...
  5. jquery mysql jsp_jsp+jquery+mysql实现的一个简单的学生管理系统
  6. SQL中 NVL()函数的使用
  7. Hive SQL中的concat、concat_ws、concat_group列转行,行转列
  8. Sqoop导入hive中null是空字符串还是‘null‘的问题(关注)
  9. CDH中impala 的查询返回部分结果。 已超出 199 流查询的时间序列流限制。
  10. html 图片 按钮,css按钮背景图片如何实现?(代码实例)