python实现【基数排序】(Radix Sort)

简介: python实现【基数排序】(Radix Sort)

python实现【基数排序】(Radix Sort)


算法原理及介绍


基数排序核心思想是按照低位先排序,然后收集;再按照高位排序,然后再收集;依次类推,直到最高位。有时候有些属性是有优先级顺序的,先按低优先级排序,再按高优先级排序。最后的次序就是高优先级高的在前,高优先级相同的低优先级高的在前。


算法过程描述


  1. 取得数组中的最大数,并取得位数;


  1. arr为原始数组,从最低位开始取每个位组成radix数组;


  1. 对radix进行计数排序(利用计数排序适用于小范围数的特点);


算法排序图解如下

20201201152418177.gif

python实现代码


def radixSort(arr):
    n = len(str(max(arr)))  # 记录最大值的位数
    for k in range(n):#n轮排序
        # 每一轮生成10个列表
        bucket_list=[[] for i in range(10)]#因为每一位数字都是0~9,故建立10个桶
        for i in arr:
            # 按第k位放入到桶中
            bucket_list[i//(10**k)%10].append(i)
        # 按当前桶的顺序重排列表
        arr=[j for i in bucket_list for j in i]
    return arr
相关文章
|
4月前
|
Python
python sort和sorted的区别
在Python中,sort()和sorted()都是用于排序的函数,但它们之间存在一些关键的区别,这些区别主要体现在它们的应用方式、操作对象以及对原始数据的影响上。
|
3月前
|
自然语言处理 Python
python技巧:数组排序sort,all方法
python技巧:数组排序sort,all方法
|
4月前
|
算法 Python
Python中不使用sort对列表排序的技术
Python中不使用sort对列表排序的技术
44 1
|
4月前
|
Python
Python中sort和sorted函数用法解析
Python中sort和sorted函数用法解析
45 0
|
Python
Python实现因子分析(附案例实战)
Python实现因子分析(附案例实战)
1443 0
Python实现因子分析(附案例实战)
Python print() 打印两个 list ,实现中间换行
Python print() 打印两个 list ,实现中间换行
|
11月前
|
Python
python之sort,reverse的定义和使用,列表元素最大最小值的求解,列表嵌套的基本使用。
python之sort,reverse的定义和使用,列表元素最大最小值的求解,列表嵌套的基本使用。
|
数据采集 开发框架 算法
python学习之路- sort
开发者学堂课程,了解Python语言的基本特性、编程环境的搭建、语法基础、算法基础等,了解Python的基本数据结构,对Python的网络编程与Web开发技术具备初步的知识,了解常用开发框架的基本特性,以及Python爬虫的基础知识。 课程地址:https://developer.aliyun.com/learning/course/601/detail/8736
python学习之路- sort
|
算法 大数据 Python
Leedcode 每日一练 搜索二维矩阵Ⅰ Python实现
Leedcode 每日一练 搜索二维矩阵Ⅰ Python实现
147 2
Leedcode 每日一练 搜索二维矩阵Ⅰ Python实现
|
存储 数据安全/隐私保护 计算机视觉
python 实现pacs功能 推送下拉影像
python 实现dcmtk关联pacs功能 推送下拉影像
261 0
python 实现pacs功能 推送下拉影像