[八排序(IV)] 归并排序 泡泡排序 计数排序 4.
最编程
2024-04-30 11:00:43
...
4.1基本概念
计数统计就是就是先统计相同元素出现的次数,出现次数每多一次,对应的数组下标就++,根据统计的结果将序列收回到原来的序列中。
4.2画图理解
计数排序
4.3代码实现
public int[] countOrder(int[] arr){
int max=arr[0];
int min=arr[0];
for (int i=0;i<arr.length;i++){
if(arr[i]>max){
max=arr[i];
}
}
for (int i=0;i<arr.length;i++){
if(arr[i]<min){
min=arr[i];
}
}
int[] tmp=new int[max-min+1];
for (int i=0;i<arr.length;i++){
tmp[arr[i]-min]++;
}
//写回arr
int index=0;
for (int i=0;i<tmp.length;i++){
while (tmp[i]>0){
arr[index]=i+min;
index++;
tmp[i]--;
}
}
return arr;
}
1.时间复杂度:O(MAX(N,范围))
2. 空间复杂度:O(范围)
3. 稳定性:稳定