基数排序(radix sort)是一种只适用于数字或字母类型的排序方法,它检查数字或字母的每一位,将之分类,按照位数的特定顺序,来将元素排列。
以数字为例,将所有元素按照个位数字分类,分类好后,将个位数字大小排列组合起来,再按照十位数字分类,再按照数字大小排列组合起来,一直到最大数位为止。
def radix_sort(array):
bucket, digit = [[]], 0
while len(bucket[0]) != len(array):
print ("bucket[0]:",bucket[0])
bucket = [[], [], [], [], [], [], [], [], [], []]
for i in range(len(array)):
num = (array[i] // 10 ** digit) % 10
bucket[num].append(array[i])
array=[]
for i in range(len(bucket)):
array += bucket[i]
print (digit,":",array)
digit += 1
return array
print (radix_sort([3,4,2,1,6,10,11,101,99,88]))