可以证明:基于比较的排序算法不可能好于O(nlogn)的时间。但是,假如指定排序n个元素,并且告知你每一个元素的值范围都在[0,k)之间,且此时K<<n(远小于)。就可以利用一个线性的排序算法,它就是计数排序。
一:计数排序时间复杂度:
|--------------------------------------|------------------------------------- |---------------------------------------
| 最好情况 | 最坏情况 | 平均情况 |
|--------------------------------------|------------------------------------- |----------------------------------------
| O(N) | O(N) | O(N) |
|------------------------------------- |--------------------------------------|----------------------------------------
二:伪代码:
三:C语言代码如下: