计数排序 O(n)

def count_sort(li,max_count=100):
    count = [0 for _ in range(max_count+1)]
    for val in li:
        count[val] +=1
    li.clear()

    for ind,val in enumerate(count):
        for i in range(val):
            li.append(ind)
import random
li = [random.randint(0,100) for _ in range(1000)]
count_sort(li)
print(li)

 适用于给定一个小的范围,然后需要做排序

posted @ 2019-07-09 02:35  小萍瓶盖儿  阅读(84)  评论(0编辑  收藏  举报