golang 做网站,wordpress创建多个分类目录,wordpress区域编辑器,静态网站设计模板2.1.1 题目内容
2.1.1-A [问题描述]
给定n个整数#xff0c;请统计出每个整数出现的次数#xff0c;按出现次数从多到少的顺序输出。
2.1.1-B [基本要求]
#xff08;1#xff09;输入格式#xff1a; 输入的第一行包含一个整数n#xff0c;表示给定数字的个数。 第二…2.1.1 题目内容
2.1.1-A [问题描述]
给定n个整数请统计出每个整数出现的次数按出现次数从多到少的顺序输出。
2.1.1-B [基本要求]
1输入格式 输入的第一行包含一个整数n表示给定数字的个数。 第二行包含n个整数相邻的整数之间用一个空格分隔表示所给定的整数。
2输出格式
输出多行每行包含两个整数分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序输出。如果两个整数出现的次数一样多则先输出值较小的然后输出值较大的。
2.1.2 算法思想
使用计数排序的思想创建一个辅助数组b用于统计每个整数出现的次数。
遍历整数数组a将每个整数作为索引将辅助数组b中相应位置的值加1表示该整数出现了一次。接着通过排序算法这里使用的是sort函数对整数数组a进行排序以便后续按照出现次数从多到少输出结果。最后通过遍历辅助数组b从出现次数最多的整数开始逐个输出整数及其出现次数。 2.1.3 源代码 [共50行]
#include iostream
#include algorithm
using namespace std;
typedef struct T_Sort
{int cnt;int x;
}TS;bool sort_rule(TS A, TS B)
{if (A.cnt B.cnt)return A.x B.x;return A.cnt B.cnt;
}
int main()
{int n;TS T[1005];cin n;for (int i 0; i 1000; i){T[i].cnt 0;T[i].x i;}while (n--){int x;cin x;T[x].cnt;}sort(T, T 1001, sort_rule);for (int i 0; i 1000; i){if (T[i].cnt)cout T[i].x T[i].cnt endl;}return 0;
}
2.1.4 CSP测评结果
正确-100分。
源码地址GeekclubC/Course-Design-of-Data-Structure: 用C完成的数据结构课程设计 (github.com)