📅  最后修改于: 2023-12-03 15:27:57.348000             🧑  作者: Mango
计数排序是一种非比较排序算法,它的核心思想是统计每个元素出现的次数,然后根据元素出现的次数计算元素的位置,最终得到排好序的数组。
计数排序适用于排序一定范围内的整数,比如排序一组年龄数据。
计数排序的实现步骤如下:
计数排序的时间复杂度为 O(n+k),其中 n 为原始数组的长度,k 为元素的取值范围。
下面是使用 Python 实现的计数排序的代码示例:
def counting_sort(arr):
# 统计每个元素出现的次数
count = [0] * (max(arr) + 1)
for i in arr:
count[i] += 1
# 计算元素的位置
for i in range(1, len(count)):
count[i] += count[i - 1]
# 排序
result = [0] * len(arr)
for i in range(len(arr) - 1, -1, -1):
index = count[arr[i]] - 1
result[index] = arr[i]
count[arr[i]] -= 1
return result
计数排序虽然时间复杂度较低,但是它只适用于排序一定范围内的整数。并且每个元素出现的次数需要使用额外的空间存储,如果元素取值范围较大,则需要使用大量空间,不适合排序大规模数据。