defRadixSort(a):
i =0#初始为个位排序
n =1#最小的位数置为1(包含0)
max_num =max(a)#得到带排序数组中最大数while max_num >10**n:#得到最大数是几位数
n +=1while i < n:
bucket ={}#用字典构建桶for x inrange(10):
bucket.setdefault(x,[])#将每个桶置空for x in a:#对每一位进行排序
radix =int((x /(10**i))%10)#得到每位的基数
bucket[radix].append(x)#将对应的数组元素加入到相应位基数的桶中
j =0for k inrange(10):iflen(bucket[k])!=0:#若桶不为空for y in bucket[k]:#将该桶中每个元素
a[j]= y #放回到数组中
j +=1
i +=1