← 返回学科目录

非比较排序算法动画演示

计数排序、桶排序、基数排序 - 可视化理解"分桶-收集"过程

计数排序
桶排序
基数排序
数据控制
动画控制
速度: 5
当前算法
计数排序
统计每个数字出现的次数,然后按顺序重建数组
状态: 准备开始动画。请点击"播放"或"单步"按钮。
计数排序原理

计数排序是一种非比较排序算法,适用于整数排序,特别是当整数的范围不大时。

核心思想:统计每个数字出现的次数,然后根据统计结果直接构造有序序列。

步骤:

  1. 找出待排序数组中的最大值,创建计数数组(大小为最大值+1)
  2. 遍历数组,统计每个数字出现的次数,存入计数数组
  3. 将计数数组转换为前缀和数组(每个位置存储小于等于该数字的元素个数)
  4. 从后往前遍历原数组,根据前缀和数组确定每个元素在有序数组中的位置

时间复杂度:O(n+k),其中n是数组长度,k是整数范围大小。

待排序元素 桶/计数数组 输出结果