📅  最后修改于: 2023-12-03 14:51:36.495000             🧑  作者: Mango
基数排序是一种非比较排序算法,对于数据量较大的情况比较适用。它的原理是将整数按位数切割成不同的数字,然后将每个位数同样的数字放到同一个桶中,再按照桶的顺序依次取出。
以下是基数排序的Python程序实现:
def radix_sort(arr):
# 获取数组中最大值的位数
max_digit = len(str(max(arr)))
# 初始化桶
bucket = [[] for _ in range(10)]
# 按照每一位进行排序
for i in range(max_digit):
for j in arr:
k = j // 10 ** i % 10
bucket[k].append(j)
arr.clear()
for k in bucket:
arr += k
k.clear()
return arr
基数排序适用于整数排序,特别是对于位数固定的排序问题。如电话号码、邮政编码、学号等排序场景。