CSP/CCF计算机职业资格认证题目:[201503-2 数字排序]【已解决】(含注释)

CCF 201503-2 数字排序 问题描述 试题编号: 201503-2 试题名称: 数字排序 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。 输入格式   输入的第一行包含一个整数n,表示给定数字的个数。   第二 阅读详情
问题描述

给定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
import java.util.Arrays;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner in =new Scanner(System.in);
		int n=in.nextInt();
		int arr[] = new int [n];
		for(int i=0;i<n;i++)
		{
			arr[i]=in.nextInt();
		}
		Arrays.sort(arr);// 先把arr数组排序
		int duan=0;	//分段,有几个不同的数字就是几段
		for(int j=1;j<n;j++)
		{
			if(arr[j]!=arr[j-1])
			{
				duan++;
			}
			if(j==n-1)
				duan++;
		}

		int [][]brr =new int[duan][2];
		int count =0;//每个数字出现的次数
		int x,y;
		x=0;y=0;

		for(int i=0;i<n;i++)
		{
			for(int j=0;j<n;j++)
			{
				if(arr[i]==arr[j])
				{
					count++;
				}
			}
			if(i<n-1)
			{
			//由于arr数组已经排好序,相同的元素会排在一起,所以只需判断元素是否相等
			//判断arr[i]是否等于arr[i+1]
			//列如:1 1 3 3 5 5 7 7 7 8 9 9
			// 1=1,True ,程序不做任何事情
			//接下来 1=3,False,把arr[i]放入brr[x][y]元素中,brr[x][y]=arr[i]
			//因为arr[i]出现次数为count,所以brr[x][y+1]=count
				if(arr[i]!=arr[i+1] ) 
				{
				brr[x][y]=arr[i];
				brr[x][y+1]=count;
				x++;
				}
			}
			else
			{
				brr[x][y]=arr[i];
				brr[x][y+1]=count;
				x++;
			}
			count=0;
		}
	/*****二维数组排序****/
		sort(brr,duan,2);
		
		
	}
	public static void sort(int arr[][],int x,int y)//二维数组排序
	{
		for(int i=0;i<arr.length-1;i++)
		{
			for(int j=0;j<arr.length-i-1;j++)
			{
				if(arr[j][1]<arr[j+1][1])
				{
					int temp=0;
					temp=arr[j][1];
					arr[j][1]=arr[j+1][1];
					arr[j+1][1]=temp;
					
					int temp2=0;
					temp2=arr[j][0];
					arr[j][0]=arr[j+1][0];
					arr[j+1][0]=temp2;
				}
			}
		}
		for(int i=0;i<x;i++)//打印结果
		{
			for(int j=0;j<y;j++)
			{
				System.out.print(arr[i][j]+" ");
			}
			System.out.println();
		}
	}
}
CCFCSP 201503-2 数字排序 问题描述  给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。输入格式  输入的第一行包含一个整数n,表示给定数字的个数。  第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。输出格式  输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序输出。如果两个整数出现的次数一样多,则先输出值较小的,然后输出值较大的。样例输入125... 阅读详情

相关推荐

微型纵向加密在新能源场站中的实战部署与运维避坑指南

本文详细解析了微型纵向加密在新能源场站中的实战部署与运维技巧。通过国密算法SM4实现数据加密,确保新能源场站通信安全,同时提供非侵入式部署方案和运维避坑指南,帮助提升网络稳定性和运维效率。

weixin_30505225的博客 595

【CCF-CSP】201503-2 数字排序 C++

数字排序

qq_45727086的博客 361

Simpack实战:5分钟搞定轨道车辆车轮不圆的3种定义方法(附详细参数设置)

本文详细介绍了在Simpack中定义轨道车辆车轮不圆的3种高效方法:Radius deviations、Fourier coefficients和Harmonic function,并提供了详细的参数设置指南。通过实战案例和参数优化技巧,帮助工程师快速掌握车轮不圆度的定义与仿真,提升轨道车辆动力学分析的准确性和效率。

weixin_29292535的博客 201

CSP历年真题201503-2-数字排序(C/C++)

代码 #include<cstdio> #include<algorithm> using namespace std; const int N = 1001; struct node{ int data, num; }a[N]; bool cmp(node a, node b){ if(a.num == b.num) return a.data <= b.da...

GTboy100的博客 466

基于用户的协同过滤算法(userCF)

1.定义 userCF:当一个用户A需要个性化推荐时,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的、而用户A没有听说过的物品推荐给A。这种方法称为基于用户的协同过滤算法。 基于用户的协同过滤算法主要包括两个步骤: 2.第一步:找到和目标用户兴趣相似的用户集合。 利用行为的相似度计算兴趣的相似度。给定用户u和用户v,令N(u)表示用户u曾经有过正反馈的物品集合,令N(v)为用户v曾经有过...

jiangdongxiaobawang的博客 1万+

一篇关于轴承故障诊断的综述

在设备的故障检测中,有约30%-40%的设备故障是由轴承故障引起的,因此本文将列举有关检测轴承故障使用到的相关数据集,模型和算法。 数据集 现有的数据集,普遍由固定在电机马达上的两个震动检测器获得,并根据需要,分离震动数据在时域和频域上的特征以供网络模型学习。 不同的数据集,区别在于,检测的马达转速不同,环境不同,取样频率不同,一段样本的时长不同等等 (1)Case Western Reserve University (CWRU) Dataset 该数据集拥有多种数据,测量的时候,通过改变轴承.

weixin_42036144的博客 2万+

【CSP试题回顾】201503-2-数字排序

CSP-201503-2-数字排序。

fzy2003的博客 579

AutoSAR系列讲解(实践篇)9.5-通信的数据映射

讲解了AppL中的数据与通信中的Signal的一个映射操作

雪云飞星的博客 1万+

CCF认证201503-2 数字排序

问题描述 试题编号: 201503-2 试题名称: 数字排序 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。 输入格式   输入的第一行包含一个整数n,表示给定数字的个数。   第二

step by step 838

android13删除录屏权限提示框-去除录屏提示

在Android 13中,当应用请求屏幕录制权限时,系统会弹出一个权限提示框,要求用户明确授权。这个提示框是为了增强用户隐私保护,让用户知道有应用尝试录制屏幕。但是,在某些情况下,开发者可能希望避免显示这个提示框,以提供更流畅的用户体验。本文将介绍如何在Android 13中删除录屏权限提示框。

zhutoubenben的专栏 1880

自然语言处理NLP星空智能对话机器人系列:Gavin大咖 Transformer 101问答集 第一问

自然语言处理NLP星空智能对话机器人系列:Transformer 101问答 [让天下没有难学的Transformer] 你问我答系列之一 Gavin大咖第一问: Transformer中的可训练Queries、Keys和Values矩阵从哪儿来? 以上是智华解答,供同学们参考。 星空智能对话机器人系列博客 NLP星空智能对话机器人系列:第二次星空智能对话机器人Zoom线上演示安排 NLP星空智能对话机器人系列:StarSpace: Embed All The Things NLP星空智能对

大模型与Agent智能体 991

CCF-CSP认证历年真题解

程序改变现实,软件统治世界。 程序员需要有精益求精的工匠精神,追求逻辑的极简、时间的最少和存储的最省,并且懂得其中的平衡。 数据表示需要优先考虑,对于许多问题,找到表示该问题的数据结构,问题自然就解决了。 CCF计算机职业资格认证的每一道试题都十分经典,覆盖现实世界中方方面面的问题。这个历年试题解主要使用C/...

(。◕‿◕。) 4251

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【CSP】201503-2 数字排序(java)

思路,创一个数组,输入的数相等于数组的下标,每输入一个数,就对应的下标+1;然后遍历,找出数组里的最大值,输出该下标和值,然后置0,当最大值的为0时,终止循环。 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int[] count = new int[100.

北海_南风 291

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

CSP 火车购票--java100分 数字排序--java100分

问题描述   请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。   假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。   购票时,一个人可能购一张或多张票,最多不超过5张。如果这几张票可以安排在同一排编号相邻的座位,则应该安排在编号最小的相邻座位。否则应该安排在编号最小的几个空座位中(不考虑是否相邻)。   假设初始时车票全部未被购买,现在给了一些购票指令,请你处理这些指令。

阿也的博客 412

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

(疑惑)【CSP认证】201503-2 数字排序

问题描述   给定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

weixin_46014378的博客 213

CCF CSP 201503-2:数字排序

代码如下: #include using namespace std; void p_sort(vector > &p){ int n = p.size(); for(int i = 0; i < n; i++){ for(int j = 0; j < n - i - 1; j++){ if(p[j].second < p[j+1].second){ swap(p[j

qq_33361432的博客 487

CSP201503-2(数字排序)(Java100分)

问题描述   给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。 输入格式   输入的第一行包含一个整数n,表示给定数字的个数。   第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。 输出格式   输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序输出。如果两个整数出现的次数一样多,则先输出值较小的,然后输出...

GeniusSoul 555

【CSP】201503-2 数字排序

问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。 输入格式 输入的第一行包含一个整数n,表示给定数字的个数。   第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。 输出格式 输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序输出。如果两个整数出现的次数一样多,则先输出值较小的,然后输出值较大的。 样例输入 ...

阳光大男孩!!!的博客 732

CCF CSP 201503-2 数字排序

思路: 1.用数组来存储相应index出现的次数,结束后扫一遍数组; 2.自定义一个排序即可; 代码: #include<bits/stdc++.h> using namespace std; typedef pair<int,int> p; typedef long long ll; #define m_p(a,b) make_pair(a,b) #define p_b(...

Yuhan的博客 366

CSP201503-2 数字排序

CSP201503-2 数字排序 #include <stdio.h> int main() { int n,a[1001]={0},b[1002][2],x,i,j,k; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&x); a[x]++; } k=0; for(i=1;i<=1000;i++) if(a...

wm2018 的博客 278

CCF模拟题 窗口

窗口 时间限制: 1.0s 内存限制: 256.0MB 问题描述   在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域。窗口的边界上的点也属于该窗口。窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容。  当你点击屏幕上一个点的时候,你就选择了处于被点击位置的最顶层窗口,并且...

weixin_30553065的博客 1376

CSP201503-2 数字排序 (Python)

文章目录题目程序代码 题目 试题编号: 201503-2 试题名称: 数字排序 时间限制: 1.0s 内存限制: 256.0MB 问题描述   给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。    输入格式   输入的第一行包含一个整数n,表示给定数字的个数。   第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。    输出格式   输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序

qq_45899597的博客 816

CCF CSP认证201503-2 数字排序

201503-2 数字排序 题目 思路 这里需要用一个结构体来保存数字及其出现的次数,排序的时候下标会乱。 代码 #include<cstdio> #include<algorithm> using namespace std; struct node{ int num,time; friend bool operator < (node x,nod...

weixin_43944910的博客 277

CCF-CSP 数字排序

问题描述试题编号:201503-2试题名称:数字排序时间限制:1.0s内存限制:256.0MB问题描述:问题描述  给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。输入格式  输入的第一行包含一个整数n,表示给定数字的个数。  第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。输出格式  输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按...

keeper42的博客 1448
上一篇: CSP/CCF计算机职业资格认证题目:[201503-1 图像旋转]【已解决】
下一篇: CSP/CCF计算机职业资格认证题目:[201403-2 窗口]【已解决】
_干柿鬼鲛
博客等级 码龄9年 27粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值