问题描述
试题编号: 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的非负整数。
 
 
解题思路:
 
实现代码(c++):
  

 #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)的更多相关文章

  1. CCF CSP 201503-2 数字排序

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

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

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

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

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

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

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

  5. JavaScript按纯数字排序

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

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

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

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

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

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

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

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

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

随机推荐

  1. TurnipBit开发板“趣味赛”:平衡力大比拼

    让孩子在快乐自由的游戏中培养编程思维 平衡力大挑战是我们经常经常玩的的一个小游戏,脑补画面的话比较常见的是单腿平衡力大比拼,摇晃幅度小者胜利.游戏好玩归好玩,但是想要公平判断胜负却不容易.下面就教大家 ...

  2. iOS 动画篇 之 Core Animation (一)

    iOS中实现动画有两种方式,一种是自己不断的通过drawRect:方法来绘制,另外一种就是使用核心动画(Core Animation). 导语: 核心动画提供高帧速率和流畅的动画,而不会增加CPU的负 ...

  3. Core Java 谈谈 ThreadPoolExecutor

    说起Java 7的Executors框架的线程池,同学们能想到有几种线程池,它们分别是什么? 一共有四个,它们分别是Executors的 newSingleThreadPool(), newCache ...

  4. Chris Richardson微服务翻译:微服务部署

    Chris Richardson 微服务系列翻译全7篇链接: 微服务介绍 构建微服务之使用API网关 构建微服务之微服务架构的进程通讯 微服务架构中的服务发现 微服务之事件驱动的数据管理 微服务部署( ...

  5. 大数据Hadoop学习之搭建Hadoop平台(2.1)

     关于大数据,一看就懂,一懂就懵. 一.简介 Hadoop的平台搭建,设置为三种搭建方式,第一种是"单节点安装",这种安装方式最为简单,但是并没有展示出Hadoop的技术优势,适合 ...

  6. bootstrap-table操作之“删除”

    最近在做一个新的后台管理系统,在对数据进行操作时需要写一个"删除"功能,如图所示: 下面我来描述一下实现过程中出现的bug以及解决方法: 1.href值为空(href=" ...

  7. linux(二)之linux常用命令一

    linux的命令非常之多,命令多就算了关键每个命令还有很多的参数.不过其实并不要去害怕它.你只要常去用,并且的话,大部分你只要记住命令,参数不记得我们可以去查帮助文档.加油吧!老帖们. 一.登入\登出 ...

  8. UVA 10881 - Piotr's Ants【模拟+思维】

    题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  9. 在R12下加载Java Bean,配置FORMS_WEB_CONFIG_FILE文件/通过AutoConfig实现Form Server配置文件的修改

    1.定位模版文件$AD_TOP/bin/adtmplreport.sh contextfile=$CONTEXT_FILE target=$FORMS_WEB_CONFIG_FILE以上命令,通过查看 ...

  10. 对于hive使用的一点记录

    最近一段时间因工作需要接触了一些hive上的使用!当然大部分都是比较基本的使用,仅当入门!各位看到有不足之处望多多指正! 废话不多说,开始: 首先是创建数据库 create database '数据库 ...