博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常用排序算法:基数排序
阅读量:6374 次
发布时间:2019-06-23

本文共 557 字,大约阅读时间需要 1 分钟。

算法思路:

步骤:1. 创建10个队列(0-9)

                      2. 遍历每个数位,按照位数存入不同的桶中
                      3. 然后再将桶中的元素依次取出,放回到原有列表中
                      4. 继续执行上两步操作,直到列表中每个数的每一位都做完成排序
                      5. 最后取出桶内元素,排序完成

时间复杂度: O(kn)  k为最大数位数                   空间复杂度:O(k+n)

代码实现:

def radix_sort(nums):    max_num = max(nums)    bucket = [[] for _ in range(10)]  # 创建空桶    i = 0    while 10 ** i < max_num:        # 按位数将数组存入桶中        for num in nums:            bucket[num // (10 ** i) % 10].append(num)        nums.clear()        for j in bucket:  # 取出桶中元素,顺便情况桶            nums.extend(j)            j.clear()        i += 1

 

转载于:https://www.cnblogs.com/FanMLei/p/10500991.html

你可能感兴趣的文章
c++读取TXT文件内容
查看>>
EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型...
查看>>
[android] ndk环境的搭建
查看>>
Kafka集群搭建
查看>>
js表达式
查看>>
oracle的日期相减
查看>>
半正定矩阵
查看>>
C语言面试基本问题
查看>>
这不是一篇随笔
查看>>
vc写csv文件
查看>>
LaTeX 加粗
查看>>
Microsoft Dynamics CRM 2011 SDK 5.07版本已经发布
查看>>
Go使用Gob存储数据
查看>>
What Are You Talking About(字典树)
查看>>
sivlerlight系统类 关系大观
查看>>
VBA快速入门技巧
查看>>
<中国人聪明之道>读书笔记
查看>>
如何手工释放linux内存
查看>>
Sliverlight好教程
查看>>
从一般管理原则看微软的重组
查看>>