Python-基数排序

def radix_sort(li):
    max_num = max(li)  # 最大值 9->1, 99->2, 999->3以此类推
    it = 0
    while 10 ** it <= max_num:
        buckets = [[] for _ in range(10)]
        for var in li:
            digit = (var // 10 ** it) % 10
            # 分桶完成
            buckets[digit].append(var)
        li.clear()
        for buc in buckets:
            # 把数重新写回li
            li.extend(buc)
        it += 1


import random
li = list(range(1000))
random.shuffle(li)
radix_sort(li)
print(li)

 

posted on 2023-02-01 14:36  夜黎i  阅读(13)  评论(0)    收藏  举报

导航