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)
浙公网安备 33010602011771号