📅  最后修改于: 2023-12-03 15:37:48.829000             🧑  作者: Mango
基数排序是一种非比较性排序算法,它根据记录的键值的每位数字来排序。时间复杂度为O(nk),其中n是排序元素个数,k是最大元素的位数。
基数排序的实现需要用到桶,具体步骤如下:
def radix_sort(arr):
max_num = max(arr)
length = len(str(max_num))
for i in range(length):
bucket = [[] for _ in range(10)]
for num in arr:
bucket[num // (10 ** i) % 10].append(num)
arr = [num for bucket_list in bucket for num in bucket_list]
return arr
基数排序的时间复杂度为O(nk),其中n是排序元素个数,k是最大元素的位数。在实践中,当k不是很大时,基数排序的效率很高。