4.10 基数排序

Posted 极夜编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4.10 基数排序相关的知识,希望对你有一定的参考价值。

4.10 基数排序

 

基数排序(Radix Sort)

4.10 基数排序

4.10 基数排序

4.10 基数排序

基数排序和计数排序这两个算法名字很像,又都是线性时间的排序算法,很多程序员把两者给混淆了。

基数排序可以看作是桶排序的扩展主要思想是将整数按位划分

基数排序需要准备10个桶,分别代表0-9,根据整数个位数字的数值将元素放入对应的桶中,之后按照输入赋值到原序列中,再依次对十位、百位等进行同样的操作

例如一个有9个数字组成的无序序列,进行升序排序。

4.10 基数排序


算法分析

原本计数排序的时间复杂度是O(n+m),而基数排序总共执行了k次计数排序,所以时间复杂度是O(k(n+m)),其中k是整数的最大位数m的个数。

虽然基数排序的时间复杂度是O(k(n+m)),但由于最大位数k是一个固定常量,因此它仍然是一个线性时间的排序算法。

由于基数排序的辅助数组是反复重用的,所以空间复杂度是O(n+m),其中m是桶的个数。


【视频讲解】

以上是关于4.10 基数排序的主要内容,如果未能解决你的问题,请参考以下文章

基数排序与基数排序

基数排序:基数排序中的“组”是啥意思?

基数排序和更改基数

排序-基数排序

基数排序算法的Java实现

基数排序就是这么容易