计数排序是一种非基于比较的排序算法,它通过统计数组中每个元素出现的次数,将其按次数从小到大排序。
以下是计数排序的基本步骤:
计数排序的时间复杂度为O(n+k),其中n是需要排序的元素数量,k是数组中的最大值与最小值的差值。这是因为计数排序需要遍历整个数组来统计元素出现的次数,然后还需要执行一次线性复制操作来将排序后的元素复制回原始数组。
以下是一个Python实现计数排序的例子:
def counting_sort(arr):
size = len(arr)
output = [0] * size
count = [0] * 10000 # 根据最大值和最小值的差值确定数组的大小
# 统计每个元素出现的次数
for i in range(size):
index = arr[i]
count[index] += 1
# 累加出现次数
for i in range(1, 10000):
count[i] += count[i - 1]
# 将元素放入输出数组中
i = size - 1
while i >= 0:
index = arr[i]
output[count[index] - 1] = index
count[index] -= 1
i -= 1
# 将输出数组复制回原数组
for i in range(size):
arr[i] = output[i]
嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!
分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!
扫码进群领资料https://s.pdb2.com/pages/20230519/16QijNiGb32IFIn.html
?