0
点赞
收藏
分享

微信扫一扫

排序——简单桶排序

曾宝月 2022-03-24 阅读 81
算法

1.在所有的排序当中,桶排序可以说是最简单的一种排序了。不过简单归简单,桶排序还是比较浪费空间的,比如有2100000000个数字,就需要申请那么多个变量。

2.关于桶排序的思路,我们不妨用一个比较轻松的比喻来解释这个简单的排序算法。

       我们现在有一大串数字等着我们去排序,要么从大到小,要么从小到大,如果数字的数目很庞大的时候我们很容易弄乱,所以我们可以借助外界的工具来帮助我们完成排序的操作。这时我们找来了N个桶(假如有n个数字,切N>=n),并且将桶一一编号,当我们在遍历这n个数字的时候,发现某个数字可以对应上桶上面的标号的时候,就将这个数字放到这个桶里面,以此类推直到遍历完所有的数字。最后只需要数一下每个桶里面有多少个相同的数字就可以了。

3.实际演练

在0~1000的区间里任意输入n个数字,然后将这n个数字进行升序输出。 


#include<stdio.h>
int main()
{
        int book[1001],t,n;  //book[10001]充当桶,计算每个数字的数量
        for(int i=0;i<=1000;i++)
        {
                book[i]=0;   //初始化为0
        }
        scanf("%d",&n);
        for(int i=0;i<n;i++)
        {
                scanf("%d",&t);
                book[t]++;
        }
        for(int i=0;i<=1000;i++)    //这时候遍历到某一个数字
        {
                for(int j=0;j<=book[i];j++)   //在这里遍历到这个数字的数量
                {
                        printf("%d ",i);
                }
        }
        getchar();
        return 0;
}
举报

相关推荐

0 条评论