news 2026/6/2 13:14:05

C++排序算法(三)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++排序算法(三)

学习目标

1.计数排序

计算机语言发展历史(二)

第二代计算机语言是汇编语言,它采用一定的助记符来代替机器语言中的指令和数据,又称为符号语言。汇编语言一定程度上克服了机器语言难读难改的缺点,同时保持了其编程质量高、所占存储空间少、执行速度快的优点。汇编语言编制的程序(称为源程序)必须经过
汇编程序(一种语言处理程序)翻译成计算机所能识别的机器语言程序(也称为目标程序)后,才能被计算机执行。

计数排序

●邮件分拣,同一个地址的邮件放入这个地址的盒子里,再按地址/顺序投递
●身高排序,身高为150的站一排,151的站一排 … 189的站一排,190的站一排。然后从前到后合成一条队,这样就排好了
●计数排序:统计同一个元素的出现次数,然后根据这些次数进行排序

2.进行计数统计


计数排序的主要步骤如下:

  1. 找出待排序数组a中的最大值W,并确定计数数组c的长度,应为W+1。

  2. 初始化计数数组c,将每个元素的出现次数初始化为0。

  3. 遍历待排序数组a,统计每个元素值i的出现次数,并将其存储在计数数组c[i]中。

  4. 遍历计数数组c,找出其中元素值大于0的元素,将其对应的下标输出元素值次。

★计数数组的下标对应待排序的数,计数数组的值对应这个数出现的次数

对o~9的10个整数进行计数排序:

#include<iostream>usingnamespacestd;#defineN10#defineW9待排序数最多数量 N 待排序数中的最大值W 待排序数组 a[]计数数组 c[]

这两句是用宏定义来声明两个常量:

  1. #define N 10:定义 N 为 10,表示待排序数组的最大元素个数,也就是这个程序最多能处理 10 个数字。
  2. #define W 9:定义 W 为 9,表示待排序数字中的最大值,也就是数组里的元素都不会超过 9。
intmain(){inta[N],c[W+1]={0};//计数数组长度为最大值+1,并且初始值为0intn;cin>>n;输入待排序的数,存放在a数组中。 同时在c数组中计数。 遍历c数组,输出得到有序的数列。return0;}

代码

#include<iostream>usingnamespacestd;#defineN10#defineW9intmain(){inta[N],c[W+1]={0};intn;cin>>n;for(inti=0;i<n;i++){/*a[ ]=5 1 1 0 ... c[]=0 2 0 0 0 1... 0 1 2 3 4 5 6 c[1]中值为2,说明1分出现了2次*/cin>>a[i];c[a[i]]++;}//
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/2 13:10:59

WOKWI仿真驱动WS2812矩阵:算法镜像生成LED几何平铺图案

1. 项目概述&#xff1a;在虚拟世界点亮创意作为一名玩了十多年Arduino和各种LED的硬件爱好者&#xff0c;我经常遇到一个头疼的问题&#xff1a;脑子里有个酷炫的灯光效果想法&#xff0c;但真要动手做&#xff0c;从画PCB、焊接灯珠到编写驱动代码&#xff0c;一套流程下来&a…

作者头像 李华
网站建设 2026/6/2 13:09:12

视频号怎么保存视频?2026全场景实操教程轻松存本地

在日常使用微信的过程中&#xff0c;很多用户都有留存优质短视频的需求&#xff0c;想要将喜欢的视频号内容保存至手机本地相册。但微信视频号平台并未设置统一的通用下载通道&#xff0c;微信视频号如何保存视频到本地&#xff0c;核心取决于视频发布者的权限设置以及视频归属…

作者头像 李华
网站建设 2026/6/2 13:08:25

如何在Windows上使用TegraRcmGUI轻松完成Switch注入:终极完整指南

如何在Windows上使用TegraRcmGUI轻松完成Switch注入&#xff1a;终极完整指南 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI 你是否曾经因为复杂的命令行操…

作者头像 李华
网站建设 2026/6/2 13:07:56

PTT5-base-t5-vocab:葡萄牙语NLP的终极解决方案

PTT5-base-t5-vocab&#xff1a;葡萄牙语NLP的终极解决方案 【免费下载链接】ptt5-base-t5-vocab 项目地址: https://ai.gitcode.com/hf_mirrors/zhouhui/ptt5-base-t5-vocab 你是否正在寻找一个专门为葡萄牙语优化的自然语言处理模型&#xff1f;PTT5-base-t5-vocab正…

作者头像 李华