基数排序

###1. 算法思想 将整数按位进行分别排序

  1. 一般使用最低有效位数字进行排序,即比较个位数、十位数、百位数
  2. 基数排序要求算法必须稳定

    伪代码

    长度为n的数组A中,每个元素都有d为数字,其中第1位是最低位,第d位是最高位

    RADIX-SORT(A, d)
      for i <- 1 to d
     do use a stable sort to sort Array A on digit
    

    ###3. 代码实现

    class Solution:
     def radixSort(self, nums):
         for i in range(len(str(max(nums)))):
             buckets = [[] for _ in range(10)] # 创建十进制的二维数组
             for num in nums: # 按照位数的值进行添加到对应的bucket
                 buckets[num // (10 ** i) % 10].append(num)
             nums.clear()
             for bucket in buckets: # 按照bucket进行排序
                 for num in bucket:
                     nums.append(num)
         return nums