一、思想
一句话总结:开辟额外空间,统计每个元素的数量。
计数排序是一种不基于比较的排序算法,主要思想是计算出待排序序列的最大值 maxValue 与 最小值 minValue,开辟一个长度为 maxValue - minValue + 1 的额外空间,统计待排序序列中每个元素的数量,记录在额外空间中,最后遍历一遍额外空间,按照顺序把每个元素赋值到原始序列中。
二、图解过程
![](https://i-blog.csdnimg.cn/blog_migrate/22e0440419cf2ba12ede0dcb4f07e312.png)
三、核心代码
public static void countingSort(int[] arr){
if(arr == null || arr.length < 2){
return;
}
int maxValue = Integer.MIN_VALUE;
int minValue = Integer.MAX_VALUE;
// 找出最大值与最小值
for(