前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >基数排序算法

基数排序算法

原创
作者头像
一点一线
发布于 2022-03-23 15:54:59
发布于 2022-03-23 15:54:59
56200
代码可运行
举报
文章被收录于专栏:计算机技术计算机技术
运行总次数:0
代码可运行

基数排序算法是基于数据的每一位来排序,基数排序也适用于正整数排序。正整数每一位都是从0~9, 这个顺序是天然的。因此可以利用这种自然的序列进行排序。在排序过程中,我们先看个位上的数的大小,然后逐渐往高位看。

基数排序的关键点:

  1. 基数排序适用于对正整数进行排序。
  2. 需要从低位开始。从高位开始也可以,复杂度会增加。

举例说明一下基数排序的过程:

以数组61, 71, 14, 30, 18 为例

  1. 首先看个位,按顺序进行排序分成(30),(61,71),(14),(18) 四组。
  2. 然后再合成一个数组为30,61,71,14,18
  3. 看十位上的数,按顺序进行排序分成(14,18),(30),(61),(71)四组。
  4. 再合成一个数组为14,18,30,61,71。

看一下python代码的实现过程:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def radix_sort(elements):
    max_unit = len(str(max(elements)))
    for i in range(max_unit):
        buckets = [[] for i in range(10)]
        for e in elements:
            unit = int(e / 10 ** i % 10)
            buckets[unit].append(e)

        del elements[:]
        for bucket in buckets:
            for d in bucket:
                elements.append(d)


if __name__ == '__main__':
    arr = [61, 71, 14, 30, 18]
    radix_sort(arr)
    print(arr)

运行结果:

[14, 18, 30, 61, 71]

更多内容请关注:IT技术漫漫谈

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【数据结构】排序算法---基数排序(动图演示)
基数排序(英语:Radix sort)是一种非比较型的排序算法,最早用于解决卡片排序的问题。基数排序将待排序的元素拆分为k个关键字,逐一对各个关键字排序后完成对所有元素的排序。
Crossoads
2024/10/22
1830
【数据结构】排序算法---基数排序(动图演示)
Python算法——基数排序
基数排序(Radix Sort)是一种非比较性排序算法,适用于对整数或字符串等数据进行排序。它根据数据的位数进行排序,从低位到高位或从高位到低位,通过分配数据到不同的桶中,然后按顺序合并这些桶,得到有序数组。基数排序是一种稳定的排序算法,适用于整数或字符串排序。本文将详细介绍基数排序的工作原理和Python实现。
Echo_Wish
2023/11/30
3190
Python 算法高级篇:桶排序与基数排序
在算法高级篇的课程中,我们将探讨两种非常有趣的排序算法:桶排序( Bucket Sort )和基数排序( Radix Sort )。这两种排序算法虽然不如快速排序和归并排序那样出名,但在某些特定情况下,它们能够以线性时间复杂度( O ( n ))运行,而不是标准排序算法的 O ( n log n )。
小蓝枣
2023/10/29
3390
Python实现基数排序
基数排序(Radix Sort)是一种非比较型的排序算法,与桶排序的思想相似,对数据进行分桶和合并。
Python碎片公众号
2021/02/26
7270
Python实现基数排序
算法渣-排序-基数排序
需要注意的是线性排序算法是非基于比较的排序算法,都有使用限制才能达到线性排序的效果
码农戏码
2021/03/23
4860
再谈基数排序-分治思想:对比计数|基数|桶|堆|希尔|快速|归并
基数排序,最先开始以为很复杂,其实就是正对正整数,先按照个位数大小对数组进行排序,再百位、千位、万位……
周陆军博客
2023/06/06
3620
八十五、再探希尔排序,桶排序,计数排序和基数排序
关于排序,其实还有很多,比如常见的希尔排序,桶排序,计数排序和基数排序,今天一口气把十大排序剩下的全部解决。
润森
2022/08/17
5450
八十五、再探希尔排序,桶排序,计数排序和基数排序
基数排序python实现
所以基数排序的原理就是,先排元素的最后一位,再排倒数第二位,直到所有位数都排完。这里并不能先排第一位,那样最后依然是无序。
py3study
2020/01/16
9280
C#基数排序算法
基数排序(Radix Sort)是一种非比较型整数排序算法,其基本思想是将整数按位数切割成不同的数字,然后按每个位数分别比较。这个算法在处理大量数据时非常有效,尤其是当数据的范围很大时。基数排序的时间复杂度通常为O(nk),其中n是待排序数组中的元素数量,k是数组中最大数的位数。
Michel_Rolle
2024/10/10
2.8K0
基数排序与桶排序,计数排序【详解】
桶排序简单入门篇^-^ 在我们生活的这个世界中到处都是被排序过的东东。站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序……总之很多东东都
Angel_Kitty
2018/04/09
1K0
基数排序与桶排序,计数排序【详解】
基数排序是什么?
基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog®m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的稳定性排序法。
跋扈洋
2021/09/03
8010
基数排序是什么?
常用的排序算法之基数排序(Radix Sort)
基数排序(Radix Sort)是非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。它按照从低位到高位(或者从高位到低位)依次对待排序的元素进行排序,直到所有的位数都被排序完毕。基数排序的思想借鉴了人类的计数排序法,即按照十进制数的每一位数来分别进行排序。
jack.yang
2025/04/05
1190
基数排序
基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的稳定性排序法 方法:最高位优先MSD、最低位优先LSD 思想:最低位优先LSD方案 1、  将待排数字根据个位上的数字进行排序 2、
苦咖啡
2018/04/28
6590
Python-排序-有哪些时间复杂度为O(n)的排序算法?
人到中年,容易变得油腻,思想懒惰,身体就容易发胖。为了摆脱中年油腻,不如和我一起学习算法来烧烧脑子,燃烧你的卡路里。
somenzz
2020/12/10
1.6K0
Python-排序-有哪些时间复杂度为O(n)的排序算法?
【排序算法】经典空间换时间基数排序
将所有待比较数值统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。 这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。
冷环渊
2022/02/03
6430
【排序算法】经典空间换时间基数排序
16张图带你彻底搞懂基数排序
在排序算法中,大家可能对桶排序、计数排序、基数排序不太了解,不太清楚其算法的思想和流程,也可能看过会过但是很快就忘记了,但是不要紧,幸运的是你看到了本篇文章。本文将通俗易懂的给你讲解基数排序。
bigsai
2020/11/19
4900
16张图带你彻底搞懂基数排序
小白也能看懂的基数排序!!!
基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用 基数排序法是属于稳定性的排序,基数排序法是效率高的稳定性排序法。 基数排序(Radix Sort)是桶排序的扩展,它是这样实现的:将整数按位数切割成不同的数字,然后按每个位数分别比较。
大忽悠爱学习
2021/11/15
4160
基数排序
基数排序(RadixSort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bing sort,顾名思义,他是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用。基数排序法是属于稳定性的排序。
JusterZhu
2022/12/07
4510
基数排序
JavaScript 数据结构与算法之美 - 桶排序、计数排序、基数排序
笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 JavaScript ,旨在入门数据结构与算法和方便以后复习。
夜尽天明
2019/07/30
7480
桶排序算法
桶排序算法就是把数据平分到每一个桶中,然后对桶中的数据进行排序,再按桶的顺序依次倒出数据,桶排序算法很好理解。桶排序算法也是以空间换时间的算法。
一点一线
2022/03/24
4240
相关推荐
【数据结构】排序算法---基数排序(动图演示)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验