--- 计数排序 --- 对列表进行排序,已知列表中的数范围都在 0 到 100 之间 设计时间复杂度为 O(n) 的算法 限制: 1. 知道范围 2. 占用空间可能很大
def count_sort(li, max_count=100):
count = [0 for _ in range(max_count + 1)]
# index 代表 0-100 的每个数字
for val in li:
count[val] += 1
li.clear()
for index, val in enumerate(count):
# 把 count 中每个 index,append val 次
for i in range(val):
li.append(index)