基数排序
###1. 算法思想 将整数按位进行分别排序
- 一般使用最低有效位数字进行排序,即比较个位数、十位数、百位数
- 基数排序要求算法必须稳定
伪代码
长度为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