桶排序

为何叫桶排序呢?

想像标号0-10的桶初始化0(数据范围在0--10之间),每出现一个号就在相应的桶中增加1,最终按顺序显示数组,

那么 就是最终的排序了

//利用数组排序,a[0]--a[10],代表0---10,

#include <stdio.h>
int main()
{
    int a[11], i, j, t;        //表示数据范围为0---10
    for (i = 0;i < 10;i++)
        a[i] = 0;//初始化为0

    for (i = 1;i <= 5;i++)
    {
        scanf("%d", &t);//把每一个数读到变量t中
        a[t]++;
    }

    //for (i = 0;i <= 10;i++)            //递增排序  
        for (i = 10;i >= 0;i--)         //递减排序

for (j = 1;j <= a[i];j++)
{
printf("%d", i);
printf(" ");
}

    getchar();
    getchar();

    return 0;
}

桶排序问题:

桶空间浪费,即使排序3个数比如,若排序数范围在1000以内,那么也要需要1001个桶,很浪费空间

原文地址:https://www.cnblogs.com/skylover/p/7119202.html