问题描述
  给定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的非负整数。

思路:定义一个结构体来包装数据及其计数值,并重写operator<方法,按计数值大小排序,计数值相同的话按序号排序。

#include<iostream>
#include<map>
#include<algorithm> const int MAX_VALUE = 1001;
using namespace std;
typedef struct Nums {
int num;
int count;
bool operator <(const Nums &_A)const {
if (count > _A.count) //按计数值从大到小排序
return true;
if (count == _A.count)//计数值相同的情况下按编号从小到大排序
return num < _A.num;
return false;
}
}Numsinfo,*PNumsinfo; int main17() {
int n;//输入数字的个数
cin >> n;
Numsinfo nums[MAX_VALUE];
for (int i = 0; i < MAX_VALUE; i++) {//初始化,对序号赋值
nums[i].num = i;
nums[i].count = 0;
}
int x;//输入的数据,输入一个数据,将其对应的序号的计数值加一
for (int i = 0; i < n; i++) {
cin >> x;
nums[x].count++;
}
sort(nums, nums + MAX_VALUE);//对数组排序,排序方法即为上面重写的operator<方法,遇到没有出现过的就结束本次循环
for (int i = 0; i < n; i++) {
if (nums[i].count == 0) break;
cout << nums[i].num << " " << nums[i].count << endl;
}
system("pause");
return 0;
}

CCF201503-2数字排序的更多相关文章

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

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

  2. CCF系列之数字排序(201503-2)

    问题描述试题编号: 201503-2试题名称: 数字排序时间限制: 1.0s内存限制: 256.0MB问题描述: 问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出. 输 ...

  3. SQL SERVER 字符串按数字排序

    需求是这样的: 数据库表里面有一个字段类型是nvachar,存的值是数字和字符混合的,要实现先按数字排序,再按字母倒序. 思路: 考虑这个字段的值是否是有规律可循的,把要按数字排序的部分转换为数字,再 ...

  4. CCF CSP 201503-2 数字排序 (map+自定义排序)

    题目链接:http://118.190.20.162/view.page?gpid=T26 返回试题列表 问题描述 试题编号: 201503-2 试题名称: 数字排序 时间限制: 1.0s 内存限制: ...

  5. JavaScript按纯数字排序

      直接上代码: var arr=[ {name:"张散步",age:"23",sports:"篮球",number:"23112 ...

  6. php冒泡排序实现方法,传入几个数字排序后 输出实战例子

    php冒泡排序实现方法,传入几个数字排序后 输出实战例子 算法和数据结构是一个编程工作人员的内功.四种入门级排序算法: 冒泡排序.选择排序.插入排序.快速排序. 一.冒泡排序 原理:对一组数据,比较相 ...

  7. CCF CSP 201503-2 数字排序

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201503-2 数字排序 问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到 ...

  8. mysql将字符串字段转为数字排序或比大小

    SELECT * FROM Student WHERE 1 = 1 ORDER BY -ID DESC ; SELECT * FROM Student WHERE 1 = 1 ORDER BY (ID ...

  9. sort()函数到底是怎样进行数字排序的

    很多人会用sort(),并不见得知道它具体是怎样给数字排序的.其实不知道也行,会用就可以,感兴趣的可以来看看. var numberArray = [2,4,1,3]; numberArray.sor ...

  10. CCF201503-2 数字排序 java(100分)

    试题编号: 201503-2 试题名称: 数字排序 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出. 输 ...

随机推荐

  1. 分享自研实现的多数据源(支持同DB不同表、跨DB表、内存数据、外部系统数据等)分页查询工具类实现原理及使用

    思考: 提起分页查询,想必任何一个开发人员(不论是新手还是老手)都能快速编码实现,实现原理再简单不过,无非就是写一条SELECT查询的SQL语句,ORDER BY分页排序的字段, 再结合limit ( ...

  2. 微信小程序防抖

    https://www.cnblogs.com/daviddd/p/12470480.html 1:wxml:设置一个按钮 <button type="primary" bi ...

  3. iCloud开发: key-value Storage,CloudKit,iCloud Documents

    目录 iCloud开发 iCloud三种类型的存储方式 项目配置 1.iCloud 官网配置 2.本地Xcode配置 注意事项 一.key-value storage 1.获取默认store 2.写入 ...

  4. SAS 数值存储方式和精度问题

    本文链接:https://www.cnblogs.com/snoopy1866/p/16021137.html 1 数值存储方式 SAS使用8个字节存储数值,使用浮点计数法表示数值. 浮点计数法由4个 ...

  5. Net之多线程用法

    1.多线程 2.线程池 3.Task using System; using System.Collections.Generic; using System.Linq; using System.T ...

  6. VS code 设置中文语言环境(实现语言切换自由)

    1.打开vs code,然后按快捷键ctrl+shift+p,输入configure language>回车 2.选择Install Additional Languages... 3.在左侧选 ...

  7. Ubuntu下使用C语言连接Mysql 8.0客户端教程

    Ubuntu下如何C语言程序连接MYSQL 8.0(全教程) 1. 安装GCC(略) 2. 安装mysql(本人使用的是最新MySQL 8.0版本) sudo apt install mysql-cl ...

  8. 后门及持久化访问2----进程注入之AppCertDlls 注册表项

    代码及原理介绍 如果有进程使用了CreateProcess.CreateProcessAsUser.CreateProcessWithLoginW.CreateProcessWithTokenW或Wi ...

  9. [实验吧](web)因缺思厅的绕过 源码审计绕过

    0x00 直接看源码吧 早上写了个注入fuzz的脚本,无聊回到实验吧的题目进行测试,发现了这道题 地址:http://ctf5.shiyanbar.com/web/pcat/index.php 分析如 ...

  10. 1分钟为Win10瘦身!把吃掉的硬盘找回来

    很多小伙伴升级完Win10后都发现C盘变小了,不少人以为这大概就是Win10太占磁盘空间了.但事实上,Win10和以前的操作系统一样,对于C盘空间并没有什么太高要求.出现这个问题的主要原因,是Win1 ...