排序算法之计数排序(Counting Sort)

计数排序

今天看了计数排序,感觉十分有趣,记录一下。

要用到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

你可能感兴趣的:(Python)