package homeWork;
import java.awt.Container;
import javax.swing.JApplet;
import javax.swing.JTextArea;
public class BucketSort extends JApplet {//桶排序
private static final long serialVersionUID = 1L;
JTextArea outpuTextArea=new JTextArea();
String output="";
int OneArray[]= {97,100,3,65};
int TwoArray[][]=new int[10][4];
public void init() {
Container container=getContentPane();
container.add(outpuTextArea);
int Num=3;//最大的位数
output+="The original array is: ";
Display();
for(int i=1;i<=Num;i++) {
distributing(i);//分布遍历
collect();//收集遍历
}
output+="After sort:";
Display();
outpuTextArea.setText(output);
}
public void distributing(int i) {//分布遍历
int n=1;
int m=1;
for(;n<=i;n++)
m=m*10;
//output+="n "+m+" ";
int mark;//标记各个位置的值
int Bmark[]=new int[10];
int temp[]=new int[4];
int a;
for(int c=0;c<Bmark.length;c++)
Bmark[c]=0;
for(int c=0;c<OneArray.length;c++) {
temp[c]=OneArray[c];
temp[c]=temp[c]/(m/10);
}
for(a=0;a<temp.length;a++) {
mark=temp[a]%10;
/*if(i==3) {
output+="temp "+temp[a]+" ";
output+="mark "+mark+" ";
}*/
TwoArray[mark][Bmark[mark]]=OneArray[a];
Bmark[mark]++;//标记在同一行的情况
}
}
public void collect() {//收集遍历
int i=0;
for(int r=0;r<=9;r++)
for(int c=0;c<4;c++)
if(TwoArray[r][c] != 0) {
//if(i<4)
OneArray[i]=TwoArray[r][c];
output+=TwoArray[r][c]+" ";
TwoArray[r][c]=0;
i++;
}
output+="/n";
}
/*public void initial() {
for(int r=0;r<=9;r++)
for(int c=0;c<4;c++)
TwoArray[r][c]=0;
}*/
public void Display() {
for(int i=0;i<OneArray.length;i++)
output+=OneArray[i]+" ";
output+="/n";
}
}
诶,这本来是个很简单的程序的,可是本人一个不小心一个地方弄错了,愣是弄了一晚上才弄好,所以决定还是发出来大家看看了,呵呵