桶排序

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";
}
}

诶,这本来是个很简单的程序的,可是本人一个不小心一个地方弄错了,愣是弄了一晚上才弄好,所以决定还是发出来大家看看了,呵呵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值