#挑战每日一条沸点#
计数排序

从名称上就知道,它的思想:就是把数组元素作为数组的下标,然后用一个临时数组统计该元素出现的次数。

数组的数据必须是整数,而且最大最小值相差的值不要过大,对于「数据是负数的话,我实现的方案对此有优化」。

「时间复杂度:O(n+k)」

思路

1.计算出差值d,最小值小于0,加上本身add

2.创建统计数组并统计对应元素个数

3.统计数组做变形,后面的元素等于前面的元素之和,也就是排名数组

4.遍历原始数组,从统计数组中找到正确位置,输出到结果数组

     
展开
评论