当前位置: 首页 > news >正文

数据结构课程设计选做(一)---数字排序(哈希、排序)

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)

http://www.lryc.cn/news/338164.html

相关文章:

  • Linux第90步_异步通知实验
  • elasticdump之python脚本
  • Hystrix应用:如何在Spring Boot中使用Hystrix?
  • js的常用方法
  • 基于SpringBoot实现的在线拍卖系统
  • React 组件生命周期对比:Class vs. 函数式
  • Ubuntu去除烦人的顶部【活动】按钮
  • Vue2(十五):replace属性、编程式路由导航、缓存路由组件、路由组件独有钩子、路由守卫、history与hash
  • 智慧污水井物联网远程监控案例
  • 程序员Java.vue,python前端后端爬虫开发资源分享
  • PCL:基于法线微分分割
  • 生产事故:线程管理不善诱发P0故障
  • WPF —— GDI画板
  • C++:基于范围的for循环
  • 引领智能互联时代,紫光展锐赋能百业创新发展
  • lv_micropython to download and building
  • 二叉树练习day.9
  • 2024年第十七届“认证杯”数学中国数学建模网络挑战赛B题思路
  • 【vue】slot 匿名插槽 / 具名插槽
  • FFmpeg: 自实现ijkplayer播放器-02环境搭建
  • Redis从入门到精通(十七)多级缓存(二)Lua语言入门、OpenResty集群的安装与使用
  • pytest常用钩子函数
  • .Net <% %>
  • 【C语言__编译和链接__复习篇2】
  • Jmeter —— 自动录制脚本
  • 使用python互相转换AVI、MP4、GIF格式视频文件
  • 11 Php学习:函数
  • 查询电脑用户名和组信息
  • 【Godot4.2】CanvasItem绘图函数全解析 - 9.绘制表格
  • 部署HDFS集群(完全分布式模式、hadoop用户控制集群、hadoop-3.3.4+安装包)