常用排序算法之桶排序

package com.dalingjia.Interview.sort;

/**
 * 桶排序
 */
public class BucketSort {

    public static void main(String[] args) {
        int[] integer = new int[]{8, 2, 5, 4, 6, 2, 7, 1};
        int[] integers = new int[11];//用来存放1~10
        //把数组里的数放到对应数组角标里
        for (Integer i : integer){
            integers[i]++;
        }
        //打印
        for (int i = 0; i < integers.length; i++) {
            if(integers[i] != 0){
                for (int j = 0; j < integers[i]; j++) {
                    System.out.print(i + ",");
                }
            }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
最快的排序算法_桶排序 最快的排序算法 [ 江南孤峰 发表于 2006-11-9 12:57:00 ] /****************************************************************\ 最快的排序算法:   桶 排 序 经分析通过比较的排序算法如,选择排序,插入排序,快速排序,堆排序 等最快为 n*log(n),这是比较排序算法的极限任何通过比较进行排序 的算法都不可能超过这个极限. 现在要介绍的 桶排序 可以超过它为 n ,当然 桶排序 的灵活性却拿不出手,必须要知道待排序数组中最大 的数.下面的程序,首先由用户输入数组的大小,程序随机产生最大数为 不超过 10000 的随机数组,最后输出原始数组,以及排序后的数组. ######################################### 独学而无友,则孤陋而寡闻 诚交天下程序员  ! Q 群: 28011342 ######################################### 编译器: VC ++ 6.0  Author : 江南孤峰   Time :2006--10--27 \****************************************************************/ #i nclude <stdio> #i nclude <malloc> #i nclude <memory> #i nclude <stdlib> #i nclude <ctype> int main(){ int order[10000],total,*array,i; while( 1){ memset(order,0,sizeof(int)*10000); printf("\nPlease input the size of the source array:"); scanf("%d",&total); array = (int *)malloc(sizeof(int)*total + 4); printf("The source array as follow:\n"); for(i = 0; i < total; i ++){ array[i] = rand() 000; printf("%d ",array[i]); order[array[i]] ++; // 这里就是排序,够简洁吧 ! } printf("\nThe array after by order as follow:\n"); for(i = 0; i < 10000; i ++){ while(order[i]){ printf("%d ",i); order[i] --; } } free(array); printf("\nContinue(y/n)? :"); getchar(); i = getchar(); if(isupper(i)) i = tolower(i); if(i == 'n') break; } return 0; }

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值