package spaceAndTimeTradeoffs; /* * 用比较计数法对数组排序 * 输入:可排序数组A[0..n-1] * 输出:将A中元素按照升序排列的数组S[0..n-1] */ public class ComparisonCountingSort { static int[] sort(int arr[]){ int count[] = new int[7]; for(int i=0;i<count.length;i++){ count[i] = 0; } for(int i=0;i<=arr.length-2;i++){ for(int j=i+1;j<=arr.length-1;j++){ if(arr[i]<arr[j]){ count[j]++; } else{ count[i]++; } } } int s[] = new int[7]; for(int i=0;i<arr.length;i++){ s[count[i]] = arr[i]; } return s; } public static void main(String[] args) { int A[] = {32,64,28,75,86,24,63}; int s[] = sort(A); for(int i=0;i<s.length;i++){ System.out.print(s[i]+" "); } } }