Java排序算法分析与实现(8)------计数排序

一、原理

计数排序是一种稳定的排序算法,核心在于将输入的数据值变化为键存储在额外开辟的数组空间中。作为一种限行时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。

(1)找出待排序数组中的最大值和最小值
(2)通过最大值最小值确定中间数组的长度,
(3)循环旧数组计数排序,统计原始数组值出现的次数,存入中间数组C中
(4)创建最终数组,与原始数组长度相同,反向填充数组,将每个元素i放在新数组的第C[i]项,每放一个元素就将C[i]减去1

最佳情况: T(n) = O(n + k)    最差情况:T(n) = O(n+k)    平均情况: T(n) = O(n+k)

二、代码实现

你可能感兴趣的:(Java排序算法分析与实现(8)------计数排序)