排序算法 | 时间复杂度 | 空间复杂度 |
---|---|---|
计数排序 | O(N+K) | O(N+K) |
基数排序 | O(N) | O(N) |
桶排序 | O(N+K) | O(N+K) |
从整体上来说,计数排序,桶排序都是非基于比较的排序算法,而其时间复杂度依赖于数据的范围,桶排序还依赖于空间的开销和数据的分布。 而基数排序是一种对多元组排序的有效方法,具体实现要用到计数排序或桶排序。 相对于快速排序、堆排序等基于比较的排序算法,计数排序、桶排序和基数排序限制较多,不如快速排序、堆排序等算法灵活性好。 但反过来讲,这三种线性排序算法之所以能够达到线性时间,是因为充分利用了待排序数据的特性,如果生硬得使用快速排序、堆排序等算法,就相当于浪费了这些特性,因而达不到更高的效率。