java算法排序之计数排序
程序员文章站
2022-03-24 13:52:34
...
package 十大排序;
public class 计数排序 {
public static void main(String[] args) {
int[] arr={10,9,11,8,7,13,2,1,12,0,0};
sort(arr);
for (int i = 0; i <arr.length ; i++) {
System.out.print(arr[i]);
System.out.print(" ");
}
}
private static void sort(int[] A) {
int[] helper = maxOf(A);
for (int i = 0; i < A.length; i++) {
helper[A[i]]++;
}
int k = 0;
for (int i = 0; i < helper.length; i++) {
while (helper[i] > 0) {
A[k++] = i;
helper[i]--;
}
}
}
private static int[] maxOf(int[] A) {
int max = -1;
for (int i = 0; i < A.length; i++) {
if (A[i] > max) {
max = A[i];
}
}
return new int[max + 1];
}
}
上一篇: python 堆排序的两种实现
下一篇: 排序算法之计数排序【Java版】