CCF系列之数字排序(201503-2)
问题描述
试题编号: 201503-2
试题名称: 数字排序
时间限制: 1.0s
内存限制: 256.0MB
问题描述:
第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。
5 2 3 3 1 3 4 2 5 2 3 5
2 3
5 3
1 1
4 1
#include <utility>
#include <iostream>
#include <map>
#include <iterator>
#include <functional> using namespace std; int main(){
map<int,int> j;
multimap<int,int,greater<int> > jj;
int n;
cin>>n;
for(int i=;i<n;i++)
{
int a;
cin>>a;
j[a]++;
}
for(map<int,int>::iterator it = j.begin();it!=j.end();it++)
{
jj.insert(pair<int,int>(it->second,it->first));
}
for(map<int,int>::iterator it = jj.begin();it!=jj.end();it++)
{
cout<<it->second<<" "<<it->first<<endl;
}
return ;
}
运行结果:

实现代码(java):
import java.util.Arrays;
import java.util.Scanner; public class NumberPaixu {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int arr[] = new int[n + ];
display(sort_2(type_arr(input1(arr, sc))));
} public static int[] input1(int arr[], Scanner sc) {
int len = arr.length;
for (int i = ; i < len - ; i++) {
arr[i] = sc.nextInt();
}
arr[len - ] = ;
return arr;
} public static int[][] type_arr(int arr[]) {
Arrays.sort(arr);
int len = arr.length;
int arr_2[][] = new int[len][];
for (int i = ; i < arr_2.length; i++) {
for (int j = ; j < ; j++) {
arr_2[i][j] = -;
}
}
int temp = ;
int k = ;
int arr_2_index = ;
for (int i = ; i < len; i++) {
if (arr[i] == arr[k]) {
temp++;
if (i != len - )
continue;
}
arr_2[arr_2_index][] = arr[k];
arr_2[arr_2_index][] = temp;
arr_2_index++;
temp = ;
k = i;
if (i != len - )
i--;
}
return arr_2;
} public static int[][] sort_2(int arr_2[][]) {
int len = arr_2.length;
for (int i = ; i < len; i++) {
for (int j = ; j < len - i - ; j++) {
if ((arr_2[j][] < arr_2[j + ][])
|| (arr_2[j][] == arr_2[j + ][] && arr_2[j][] > arr_2[j + ][])) {
int temp = arr_2[j][];
arr_2[j][] = arr_2[j + ][];
arr_2[j + ][] = temp;
temp = arr_2[j][];
arr_2[j][] = arr_2[j + ][];
arr_2[j + ][] = temp;
}
}
}
return arr_2;
} public static void display(int arr_2[][]) {
int len = arr_2.length;
for (int i = ; i < len; i++) {
if (arr_2[i][] != -) {
System.out.println(arr_2[i][] + " " + arr_2[i][]);
}
}
}
}
运行结果:

我的实现代码(java):
package ccf_test2015_03; import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner; public class NumberPaixu2 { private static int N ; public static void main(String[] args) { Map map = new HashMap(); Scanner input = new Scanner(System.in); N = input.nextInt(); int[][] number = new int[N][2]; for(int i = 0; i < N; i++){ int key = input.nextInt(); if(map.get(key) != null){ int value = (int) map.get(key); map.replace(key, value, ++value); }else{ map.put(key, 1);
}
}
int count = 0; Iterator entries = map.entrySet().iterator(); while(entries.hasNext()){ Map.Entry entry = (Map.Entry) entries.next(); int key = (int) entry.getKey(); int value = (int) entry.getValue(); number[count][0] = key; number[count++][1] = value;
}
for(int i = 0; i < count-1; i++){ for(int j = 0 ;j < count - i - 1; j++){ if(number[j][1] < number[j + 1][1]){ int[] temp = number[j]; number[j] = number[j + 1]; number[j + 1] = temp; }else if(number[j][1] == number[j + 1][1]){ if(number[j][0] > number[j + 1][0]){ int[] temp = number[j]; number[j] = number[j + 1]; number[j + 1] = temp;
}
}
}
} for(int i = 0; i < count; i++){ System.out.println(number[i][0] + "\t" + number[i][1]);
} } }
运行结果:

CCF系列之数字排序(201503-2)的更多相关文章
- CCF CSP 201503-2 数字排序
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201503-2 数字排序 问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到 ...
- CCF CSP 201503-2 数字排序 (map+自定义排序)
题目链接:http://118.190.20.162/view.page?gpid=T26 返回试题列表 问题描述 试题编号: 201503-2 试题名称: 数字排序 时间限制: 1.0s 内存限制: ...
- 基于Hadoop 2.6.0运行数字排序的计算
上个博客写了Hadoop2.6.0的环境部署,下面写一个简单的基于数字排序的小程序,真正实现分布式的计算,原理就是对多个文件中的数字进行排序,每个文件中每个数字占一行,排序原理是按行读取后分块进行排序 ...
- SQL SERVER 字符串按数字排序
需求是这样的: 数据库表里面有一个字段类型是nvachar,存的值是数字和字符混合的,要实现先按数字排序,再按字母倒序. 思路: 考虑这个字段的值是否是有规律可循的,把要按数字排序的部分转换为数字,再 ...
- JavaScript按纯数字排序
直接上代码: var arr=[ {name:"张散步",age:"23",sports:"篮球",number:"23112 ...
- php冒泡排序实现方法,传入几个数字排序后 输出实战例子
php冒泡排序实现方法,传入几个数字排序后 输出实战例子 算法和数据结构是一个编程工作人员的内功.四种入门级排序算法: 冒泡排序.选择排序.插入排序.快速排序. 一.冒泡排序 原理:对一组数据,比较相 ...
- mysql将字符串字段转为数字排序或比大小
SELECT * FROM Student WHERE 1 = 1 ORDER BY -ID DESC ; SELECT * FROM Student WHERE 1 = 1 ORDER BY (ID ...
- sort()函数到底是怎样进行数字排序的
很多人会用sort(),并不见得知道它具体是怎样给数字排序的.其实不知道也行,会用就可以,感兴趣的可以来看看. var numberArray = [2,4,1,3]; numberArray.sor ...
- CCF201503-2 数字排序 java(100分)
试题编号: 201503-2 试题名称: 数字排序 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出. 输 ...
随机推荐
- Python的*args与**kwargs
当Python的函数的参数不确定时,可以使用*args与**kwargs来指代不定数量的参数. 两者的区别是,*args是个tuple(元组),而**kwargs是个dict(字典). 先通过代码来验 ...
- MySQL迁移方案(后续再补充)
出处:黑洞中的奇点 的博客 http://www.cnblogs.com/kelvin19840813/ 您的支持是对博主最大的鼓励,感谢您的认真阅读.本文版权归作者所有,欢迎转载,但请保留该声明. ...
- jenkins的搭建
根据官方网站的步骤进行安装 网址:https://wiki.jenkins.io/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions ...
- pyspark进行词频统计并返回topN
Part I:词频统计并返回topN 统计的文本数据: what do you do how do you do how do you do how are you from operator imp ...
- 【python3之变量,输入输出,判断,循环】
一.python的基础语法和规则 1.变量 ①.变量的命名规则 语法: (下划线或字母)+(任意数目的字母.数字或下划线) 变量名必须以下划线或字母开头,而后面接任意数目的字母.数字或下划线.下划线分 ...
- linux中搭建solr集群出现org.apache.catalina.LifecycleException: Failed to initialize component ,解决办法
07-Jan-2018 20:19:21.489 严重 [main] org.apache.catalina.core.StandardService.initInternal Failed to i ...
- javascript 之this指针-11
前言 在<javascript 之执行环境-08>文中说到,当JavaScript代码执行一段可执行代码时,会创建对应的执行上下文(execution context).对于每个执行上下文 ...
- js变量提升小记
作为世界上最优美的语言javascript的使用者,呵呵,js的魅力是无穷的,今天来聊聊他的魅(dan)力(teng)之一,变量提升. 每种语言所定义的变量基本都会有一定得作用域,而js的作用域则存在 ...
- JQEUI问题收集
JQEUI问题收集大家在使用JQEUI的过程中如遇到任何问题或是建议均可在此留言,作者会尽快回复.JQEUI社区也在积极的开发中,敬请期待-- JQEUI官网:http://www.jqeui.com ...
- python requirements使用方法
记得导入导出包的时候要想激活虚拟环境. 1.导出requirements方法 pip freeze > requirements.txt 2.安装requirements方法 pip insta ...