排序算法——基数排序 Radix Sort(C++ Java)
任何基于比较的排序算法,其时间复杂度都不可能低于O(nLogn),基数排序可以打破这个瓶颈,对于范围在1到k的元素序列,其复杂度为O(n+k)。但是当元素的范围为1到n^2的时候,就不该用计数排序了,因为这种情况下需要O(n^2)的辅助空间,这比基于比较的排序算法要坏得多。那么对于范围为1到n^2的序列,有没有复杂度为线性的算法呢?有,那就是本章要讨论的基数排序算法(Radix Sort)。基数排序的基本思想是对输入序列的各元素,从它们的低位向高位进行逐位的比较排序。基数排序算法的主要过程为:
复制链接