📅  最后修改于: 2023-12-03 14:57:26.178000             🧑  作者: Mango
计数排序(Counting sort)是一种线性时间复杂度的排序算法,其核心思想是借助额外的辅助空间,通过计算每个元素出现的次数,将待排序的数据分配到有序的桶中,再依次收集桶中的数据即可得到有序序列。
下面是 Python 实现计数排序的示例程序:
def counting_sort(nums):
max_num, min_num = max(nums), min(nums)
count = [0] * (max_num - min_num + 1)
for num in nums:
count[num - min_num] += 1
for i in range(1, len(count)):
count[i] += count[i - 1]
res = [0] * len(nums)
for num in nums[::-1]:
res[count[num - min_num] - 1] = num
count[num - min_num] -= 1
return res
需要注意的是,计数排序需要知道待排序数组的最大值和最小值,因此在编写代码时要对输入的数据进行判断和处理。