基数排序其实就是使用空间来换取时间,因为有了分布式的计算,空间好像就不是问题啦,现在主要考虑的就是时间
def radixSort(li):
maxLen = len(str(max(li)))
for i in range(maxLen):
buckList = [[] for _ in range(10)]
for x in li:
buckList[x // (10 ** i) % 10].append(x)
li.clear()
for buck in buckList:
for num in buck:
li.append(num)
return li
测试速度
from random import shuffle
import time
N = 100000
li = list(range(N))
shuffle(li)
t1 = time.time()
res = radixSort(li)
# print(res)
t2 = time.time()
print("基数排序消耗时间:", t2 - t1)
结果:
基数排序消耗时间: 0.34979939460754395
可见速度是很快的也是目前学过的最快的算法,不过据说最快的是蒂姆排序,有空了解一下