今天看了计数排序,感觉十分有趣,记录一下。
要用到collections库中的defaultdict,代码如下:
from collections import defaultdict
def counting_sort(seq, key=lambda x: x):
sorted_seq, my_dict = [], defaultdict(list)
for num in seq:
my_dict[key(num)].append(num)
for i in range(min(my_dict), max(my_dict) + 1):
sorted_seq.extend(my_dict[i])
return sorted_seq