为啥错误呢?调了半天
package 三大线性排序; import java.util.Random; public class Main { final static int ac=10; static void output(int a[],int len) { for (int i=0;i<len;i++) { System.out.print(a[i]+" "); } System.out.println(); } public static void main(String args[]) { Random ran=new Random(); int a[]=new int[ac]; for(int i=0;i<ac;i++) { a[i]=ran.nextInt(20); } int b[]=new int[ac];//返回结果 output(a,ac); countSort(a,b,ac); output(b,ac); } private static void countSort(int[] a,int b[],int len) { // TODO Auto-generated method stub int c[]=new int[20];//计数数组,数的范围为 0--20 //计数 for(int i=0;i<10;i++) { System.out.print(b[i]); } for(int i=0;i<len;i++ ) { c[a[i]]++; } output(c,c.length); for(int i=1;i<20;i++) { c[i]=c[i-1]+c[i]; } output(c,c.length); //按顺序输出,保存在b中对应位置,逆序输出保持是稳定的 for(int i=len-1;i>=0;i--) { System.out.println("第"+i+"个数"+a[i]+"放到了"+(c[a[i]]-1)+"---"+b[c[a[i]-1]]); b[c[a[i]-1]]=a[i]; System.out.println(b[c[a[i]-1]]); c[a[i]]--; output(b,b.length); } } }