计数排序
像快排、堆排、归并等排序算法都是基于比较的排序算法,时间复杂度最好情况也只能降到O(nlogn)。
计数排序是一种线性排序算法,不需要进行比较,时间复杂度为O(n)。(注意是计数排序不是基数排序,两者不同)
基本思想是:对于每个元素x,找出比x小的数的个数,从而确定x在排好序的数组中的位置。此算法需要辅助数组,是以空间换时间。
举例说明:
原始数组:arr
1
|
5
|
3
|
7
|
6
|
2
|
|