基数排序(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]))
基数排序是一种非比较型整数排序算法,通过按位分配并收集的方式进行排序。该算法详细步骤包括从低位到高位依次对数字进行分类,然后重新组合。文中提供了一个Python示例,展示了如何对一组数字进行基数排序。
543

被折叠的 条评论
为什么被折叠?



