def countsort(lista):
leng = len(lista)
c = []
res = []
for i in range(100):
c.append(0)
for i in range(leng):
c[lista[i]] = c[lista[i]] + 1
res.append(0)
for i in range(100):
c[i] = c[i - 1] + c[i] # c中此时存放的是小于或者等于i的数字的个数
for i in range(leng - 1, -1, -1):
res[c[lista[i]] - 1] = lista[i]
c[lista[i]] = c[lista[i]] - 1
return res
lista = [5, 4, 2, 5, 1, 7] # 计数排序测试代码
listb = countsort(lista)
print(listb)
基础算法——计数排序
最新推荐文章于 2024-03-13 23:03:57 发布