计数排序是一种非比较排序算法,它的核心思想是将待排序的元素按照出现的次数进行统计,然后再按照统计结果进行排序。
public void countSort(int[] nums) {
if(nums ==null || nums.length <2){
return;
}
int max=Integer.MIN_VALUE;
for(int num :nums){
max =Math.max(max,num);
}
int[] bucket =new int[max+1];
for(int i=0;i<nums.length;i++){
bucket[nums[i]]++;
}
int i=0;
for(int j=0;j<bucket.length;j++){
while(bucket[j]-- >0){
nums[i++]=j;
}
}
}