✨博客主页:王乐予🎈
✨年轻人要:Living for the moment(活在当下)!💪
🏆推荐专栏:【图像处理】【千锤百炼Python】【深度学习】【排序算法】
基数排序是排序算法系列的第八个要介绍的算法!
基数排序既属于非比较类排序也属于内部排序。
😺一、算法原理
🐶1.1 算法原理
基数排序(Radix Sort)是把待排序中的元素按照低位先排序,然后收集,再按照高位排序,再收集,直至最高位。
🐶1.2 算法步骤
- 步骤一:取得待排序序列中的最大值,并取得位数;
- 步骤二:arr为原始数组,从最低位开始取每个位组成radix数组;
- 步骤三:对radix进行计数排序。
😺二、动图演示
😺三、程序实现
参考:
https://blog.csdn.net/weixin_43790276/article/details/107398348
def radixsort(array):
max_num = max(array)
place = 1
while max_num >= 10 ** place:
place += 1
for i in range(place):
buckets = [[] for _ in range(10)]
for num in array:
radix = int(num / (10 ** i) % 10)
buckets[radix].append(num)
j = 0
for k in range(10):
for num in buckets[k]:
array[j] = num
j += 1
return array
if __name__ == '__main__':
array = [3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48]
print(radixsort(array))
输出结果为:
[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]