java算法排序之计数排序

it2023-07-01  78

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]; } }
最新回复(0)