算法描述
一般的排序方法,比如冒泡,快排,堆排,都是基于两个值得比较,进行排序的,这类排序方式的时间复杂度有一个理论下限O(NlogN)。
基数排序不是基于比较的方式,因此其时间复杂度没有O(NlogN)的限制。
一个 由K进制表示成的长为W的数,可以表示M =
KW
个数, 现在有N个数进行排序。
具体实现见图示
https://www.cs.usfca.edu/~galles/visualization/RadixSort.html
复杂度分析,时间复杂度为O(W*N), 空间复杂度为O(K*N)
其实对于固定M,我们可以使用更大的进制K,实现空间换时间,或者使用更小的进制K,实现时间换空间。