计数排序horange
| 2023-7-21
0  |  阅读时长 0 分钟
 
 
 
计数排序(Counting sort)是一种线性时间的排序算法,核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。
notion image
 
计数排序的工作原理是使用一个额外的数组,其中第个元素是待排序数组中值等于的元素的个数,然后根据数组来将中的元素排到正确的位置。
notion image
工作过程:
  1. 找出待排序的数组中最大和最小的元素
  1. 统计数组中每个值为i的元素出现的次数,存入数组C的第i
  1. 对所有的计数累加(从C中的第一个元素开始,每一项和前一项相加)
  1. 反向填充目标数组:将每个元素i放在新数组的第C[i]项,每放一个元素就将C[i]减去1
 
时间复杂度
计数排序的时间复杂度为),其中代表待排序数据的值域大小
 
代码实现
目录