思想:
比较排序又称为鸽巢原理,是对哈希直接定址法的变形应用。
思想步骤:
- 统计相同元素出现的次数
- 根据统计的结果将序列收回到原来的序列中
具体步骤:
- 先统计数据的大小范围,开辟一个大小为范围的数组( 最大值 - 最小值 )
- 遍历待排数据,每次将数据所对应的新数组的映像(相对于最小数据的位置)加一,也就是计数
- 然后根据所记录的个数,再将新数组映像所对应的数据一个一个按顺序放进原数组,排序完成
注意:计数排序只适用于排整型,因为其他各种数据都没法根据映射而计数排序
示图:
特性:
- 时间复杂度:O(MAX(N,范围)),其实就是O(N),不过 N 为数组元素与范围大小中大的那一个
- 空间复杂度:O(范围)
- 稳定性:无,因为只能排整型数据,所以没有这一概念
- 计数排序在数据范围集中时,效率极高,但是适用范围及场景有限