使用Python实现桶排序算法
桶排序是基于分治思想的非比较型排序算法,通过分桶、桶内排序、合并实现整体有序。核心步骤:根据数据分布特点分桶,桶内元素少,用简单排序(如内置排序)处理,最后合并所有桶结果。 适用场景:数据均匀分布且范围有限时效率接近线性(O(n));分布不均可能退化为O(n²),性能低于快速排序。 Python实现(以0-1区间浮点数为例):创建n个空桶(n为数据长度),按`int(num*n)`分配数据到对应桶,桶内排序后合并所有桶元素。代码简洁,但需根据数据范围调整桶索引计算,优化桶大小避免极端值集中。 总结:适合均匀分布数据,利用分治降低复杂度,需关注数据分布特性以避免性能退化。
阅读全文使用Python实现计数排序算法
计数排序是高效非比较型排序算法,适用于整数且取值范围较小的场景,时间复杂度O(n+k)(n为元素数,k为数据范围)。核心步骤:1.确定数据范围(找min和max);2.构建计数数组统计各元素出现次数;3.按顺序输出计数数组元素(次数对应输出次数)。它稳定(重复元素相对顺序不变),内存占用取决于数据范围,适合重复元素多或范围小的整数数据(如考试分数)。Python实现通过边界处理、统计次数等完成排序,测试验证对含重复元素及负数数组的适用性。
阅读全文