桶排序(java实现)

简单的桶排序:

有限个数字m,每个数字的大小都在1与n之间,则我们可以假设有n个桶,遍历m个数字,将其存入对应的桶中(如数字的值为3,就存入3号桶,桶的值对应存入数字的个数
桶号 	1 	2 	3 	4 	5
计数 	1 	1 	2 	0 	1

按照桶的序号将数字倒出来:

桶的倒出顺序 	    数字队列
5号桶倒出1个5 	    5
4号桶倒出0个4 	    5
3号桶倒出2个3 	    5,3,3
2号桶倒出1个2 	    5,3,3,2
1号桶倒出1个1 	    5,3,3,2,1

java代码:

import java.util.*;
public class BucketSortDemo{
    public static void main(String[]args){
        int []a={5,3,3,2,1};
        System.out.println(Arrays.toString(a));
        bucketSort(a,5);
    }

    public static void bucketSort(int[]a,int max){
        int []count=new int[max+1];  //创建一个长度为max的数组

         // 遍历数组a
        for(int i=0;i<a.length;i++){
            // 如果数组a的值 作为的count的 下标,每次出现一次 count数组的值+1
            count[a[i]]++;
        }


        // 将桶的中数字倒出
        System.out.print("排序号的数组:");
        for(int i=0;i<count.length;i++){
            while(count[i]>0){
                System.out.print(i+"");
                count[i]--;
            }
        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值