8.4桶排序

代码展示:

public static void main(String[] args) {
		int[] a = {62,36,75,135,134,34,63,63,208};
		BucketSort(a);
		System.out.println(Arrays.toString(a));
	}

	private static void BucketSort(int[] a) {

		         int weishu = 0;
		         int[][] bucket = new int[10][a.length];
		         int[] index = new int[10];//记录每个桶大小
                 for(int ai:a){
                	 String ais = (ai+"");
                	 weishu = ais.length()>weishu?ais.length():weishu;
                 }
                 //塞入桶中
                 for(int ai:a){
                	 int zuigaowei = (int) (ai/Math.pow(10,weishu-1)%10);
                	 int k = index[zuigaowei]-1;
                	 //插入排序
                	 while (k>=0&&ai<bucket[zuigaowei][k]) {
						bucket[zuigaowei][k+1] = bucket[zuigaowei][k];
						k--;
						
					}
                	 bucket[zuigaowei][k+1] = ai; 
                	 index[zuigaowei]++;
                 }
                 int indexa = 0;
                 for(int i=0;i<a.length;i++){
                	 for(int j=0;j<index[i];j++){
                		  a[indexa] = bucket[i][j];
                		  indexa++;
                	 }
                 }
		
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值