使用C++实现计数排序算法

**计数排序**是一种非比较型排序算法,核心思想是通过统计元素出现次数构建排序数组,适用于整数范围不大的场景(如学生成绩、年龄)。 **基本思路**:以数组`[4,2,2,8,3,3,1]`为例,步骤为:1. 确定最大值(8),创建计数数组`count`统计各元素出现次数(如`count[2]=2`);2. 按计数数组顺序将元素插入结果数组,得到排序结果`[1,2,2,3,3,4,8]`。 **实现要点**:C++代码中,先找最大值,统计次数,构建结果数组并复制回原数组。关键步骤包括计数数组初始化、统计次数、按次数填充结果数组。 **复杂度**:时间复杂度O(n+k)(n为数组长度,k为数据范围),空间复杂度O(k)。 **适用场景**:非负整数且范围小,需高效排序;负数可通过偏移量转换(如加最小值)处理。 计数排序通过“计数-构建”逻辑实现线性时间排序,是处理小范围整数

阅读全文
使用Python实现计数排序算法

计数排序是高效非比较型排序算法,适用于整数且取值范围较小的场景,时间复杂度O(n+k)(n为元素数,k为数据范围)。核心步骤:1.确定数据范围(找min和max);2.构建计数数组统计各元素出现次数;3.按顺序输出计数数组元素(次数对应输出次数)。它稳定(重复元素相对顺序不变),内存占用取决于数据范围,适合重复元素多或范围小的整数数据(如考试分数)。Python实现通过边界处理、统计次数等完成排序,测试验证对含重复元素及负数数组的适用性。

阅读全文