桶排序java版本

来源:互联网 发布:网络阅卷成绩 编辑:程序博客网 时间:2024/05/22 03:07


public class Bucket_sort {


/**
* O(n)
* 适合均匀分布的小数0.1-0.9之间的小数
*/

public static void blubble_sort(float[] a){
for(int i=0;i<a.length;i++){
for(int j=0;j<a.length-1-i;j++){
if(a[j]>a[j+1]){
float temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}


public static void print(float[] a){
for(int i=0;i<a.length;i++){
System.out.print(a[i]+"\t");
}
System.out.println();
}

public static void bucket_sort(float[] a){
float[][] b=new float[10][20];
for(int i=0;i<a.length;i++){
int rowindex=(int)Math.floor(a[i]*10);
System.out.println(rowindex);
for(int j=0;j<20;j++){
if(b[rowindex][j]==0){
b[rowindex][j]=a[i];
break;
}
}
}
for(int i=0;i<10;i++){
blubble_sort(b[i]);
}
int k=0;
for(int i=0;i<b.length;i++){
for(int j=0;j<b[i].length;j++){
if(b[i][j]!=0){
a[k++]=b[i][j];
}
}
}
}
public static void main(String[] args) {
float[] a=new float[]{0.1f,0.4f,0.9f,0.8f,0.5f,0.1f,0.6f};
        print(a);
        bucket_sort(a);
        print(a);
}


}
0 0
原创粉丝点击