排序算法-基数排序
来源:互联网 发布:酷家乐装修软件 编辑:程序博客网 时间:2024/06/13 09:34
第一步
以LSD为例,假设原来有一串数值如下所示:
73, 22, 93, 43, 55, 14, 28, 65, 39, 81
首先根据个位数的数值,在走访数值时将它们分配至编号0到9的桶子中:
0
1 81
2 22
3 73 93 43
4 14
5 55 65
6
7
8 28
9 39
第二步
接下来将这些桶子中的数值重新串接起来,成为以下的数列:
81, 22, 73, 93, 43, 14, 55, 65, 28, 39
接着再进行一次分配,这次是根据十位数来分配:
0
1 14
2 22 28
3 39
4 43
5 55
6 65
7 73
8 81
9 93
第三步
接下来将这些桶子中的数值重新串接起来,成为以下的数列:
14, 22, 28, 39, 43, 55, 65, 73, 81, 93
这时候整个数列已经排序完毕;如果排序的对象有三位数以上,则持续进行以上的动作直至最高位数为止。
LSD的基数排序适用于位数小的数列,如果位数多的话,使用MSD的效率会比较好。MSD的方式与LSD相反,是由高位数为基底开始进行分配,但在分配之后并不马上合并回一个数组中,而是在每个“桶子”中建立“子桶”,将每个桶子中的数值按照下一数位的值分配到“子桶”中。在进行完最低位数的分配后再合并回单一的数组中。
经过以上可以分析,基数排序的时间复杂度为O(nk),其中k为最大数据的位数
经过以上可以分析,基数排序的时间复杂度为O(nk),其中k为最大数据的位数
0 0
- 排序算法-基数排序_基数排序
- 排序算法之基数排序
- 排序算法 - 基数排序(C++)
- 【排序算法】基数排序(RadixSort)
- 排序算法-基数排序
- 排序算法之基数排序
- 排序算法-----基数排序
- 排序算法-基数排序
- 排序算法之基数排序
- 排序算法---基数排序
- 排序算法--基数排序
- 排序算法之基数排序
- 排序算法九:基数排序
- 排序算法之基数排序
- 排序算法: 基数排序
- 排序算法九:基数排序
- 排序算法-基数排序
- 排序算法系列:基数排序
- baidu记录2
- 流氓软件也来争雄天下:
- [训练指南] 第一章 例题3 分金币 (Spreading the wealth,Uva 11300)
- Cubietruck---20.SurfaceFlinger创建过程分析
- OpenGL深入探索——《OpenGL编程指南(原书第8版)》——计算着色器
- 排序算法-基数排序
- H5学习笔记之表格元素、文档元素
- Java中的super关键字
- LeetCode - 54. Spiral Matrix
- Cubietruck---21.任意红外遥控器的使用方法
- git的使用
- 人生如逆旅,静读思己心
- 关于标准c中的strtok和linux库里面的strsep
- Cubietruck---22.vold深入理解android第九章笔记