バケツの並べ替えが間違ったお父さん
4446 ワード
どうして間違ってるの?長いこと調整した.
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]+"\t");
}
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);
}
}
}