每天一点算法-基数排序(Day11)

简介: 每天一点算法-基数排序(Day11)

介绍

前面解释堆排序花费不少力气,今天介绍很容易理解的一种排序——基数排序。算法逻辑:

1.将所有数统一为同位数,即里面最大的数的位数(如最大为1893,即所有数都写成四位数)。不够位数的前面用0补齐(如32补齐四位数为0032),当然用更大位数也可以,只不过会浪费更多存储空间;

2.依次从低位开始按第1位排序、第2位排序...直到所有位都已排序。

为什么不从高位开始排?
因为 具有决定大小的位数是在最高位,如果放到前面排,后续低位的排序会把大小顺序打乱。

基数排序

时间复杂度

时间复杂度:O(d(n+r)),其中:d为待排列数字的最大位数,n为待排序列的长度,r为进制数 。

感谢阅读!欢迎关注!持续更新中...
相关文章
|
算法 搜索推荐 Python
Python算法——基数排序
Python算法——基数排序
193 1
|
搜索推荐 Java Go
深入了解基数排序算法
深入了解基数排序算法
184 4
|
算法 搜索推荐 Java
数据结构与算法学习十三:基数排序,以空间换时间的稳定式排序,速度很快。
基数排序是一种稳定的排序算法,通过将数字按位数切割并分配到不同的桶中,以空间换时间的方式实现快速排序,但占用内存较大,不适合含有负数的数组。
280 0
数据结构与算法学习十三:基数排序,以空间换时间的稳定式排序,速度很快。
|
存储 算法 搜索推荐
数据结构各内部排序算法总结对比及动图演示(插入排序、冒泡和快速排序、选择排序、堆排序、归并排序和基数排序等)2
数据结构各内部排序算法总结对比及动图演示(插入排序、冒泡和快速排序、选择排序、堆排序、归并排序和基数排序等)2
451 0
|
存储 搜索推荐 算法
八大排序算法-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序、基数排序(下)
八大排序算法-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序、基数排序(下)
334 0
|
搜索推荐 算法 Java
【算法】基数排序的原理与Java实现
基数排序(Radix Sort)是一种非比较性的排序算法,它根据元素的位数逐位进行排序。基数排序的核心思想是将待排序的元素按照低位到高位的顺序进行排序,每一位都使用稳定的排序算法(通常是计数排序或桶排序)。通过多次按位排序,最终可以得到有序的结果
234 0
|
算法 前端开发
前端算法之基数排序
前端算法之基数排序
169 1
|
算法 C语言
数据结构和算法——桶排序和基数排序(图示、伪代码、多关键字排序,基数排序代码)
数据结构和算法——桶排序和基数排序(图示、伪代码、多关键字排序,基数排序代码)
194 0
|
搜索推荐 算法 Java
【数据结构排序算法篇】----基数排序【实战演练】
【数据结构排序算法篇】----基数排序【实战演练】
174 3

热门文章

最新文章