需要借助一个数组,统计待排序数列中各个数值出现的次数,<br>以待排序中的最大值来决定统计数组的长度。数组长度=最大值+1<br>
优化<br>
数组长度=数列最大值-最小值+1 作为数组的长度;最小值作为偏移量,<br>用于计算数值在统计数组中的下标。那么一个数值在数组中的位置=数值-最小值,<br>即为实际数值在数组中的位置<br>
比如95,93,91,98,99,90,99,93,91,92。不能创建长度99+1=100为数组,<br>会造成空浪费;以99-90+1=10长度的数组,就不会浪费空间<br>
单纯排序没有问题
业务上要处理相同数值谁是谁的问,比如成绩,2个同学相同,<br>要看出哪个在前哪个在后时,还得继续优化<br>
优化后的计数排序是稳定的排序