public void countSort(Integer[] objArr) {
int max = objArr[0];
int min = objArr[0];
for (int i = 1; i < objArr.length; i++) {
if(objArr[i] > max){
max = objArr[i];
}
if(objArr[i] < min){
min = objArr[i];
}
}
int[] countArray = new int[max - min + 1];
for (int i =0; i <objArr.length; i++) {
countArray[ objArr[i] - min ]++;
}
int writBackIndex = 0;
for (int i = 0; i < countArray.length; i++) {
int count = countArray[i];
if(count == 0){
continue;
}
for (int j = 0; j < count ; j++) {
objArr[writBackIndex++] = i + min;
}
}
}
计数排序Java实现
最新推荐文章于 2022-09-21 13:09:44 发布