package data_structure;
import java.util.Arrays;
public class CountSort {
public static void main(String[] args) {
int[] arr = {3,44,38,5,47,15,36,26,27,2,46,4,19,50,48};
int[] result = sort(arr);
System.out.println(Arrays.toString(result));
}
private static int[] sort(int[] arr){
int[] result = new int[arr.length];
int max = arr[0];
for (int a: arr) {
if (max < a){
max = a;
}
}
// 注意max + 1,因为长度为max的数组是不包括下标为max的
int[] count = new int[max + 1];
for (int a:arr) {
count[a]++;
}
System.out.println("计数数组:");
System.out.println(Arrays.toString(count));
for (int i = 0, j = 0; i < count.length; i++){
while (count[i]-- > 0)
result[j++] = i;
}
return result;
}
}
计数排序Java
最新推荐文章于 2023-02-11 16:34:54 发布