桶排序应该是最简单的一种排序方法 同时也因为简单而有很多限制和缺点
缺点就是非常浪费空间 如要需要排序的数字很大 那么要申请一个很大的空间
这里举一个最简单的例子去介绍桶排序
如果一位老师要给5位学生的分数排序 分数为0-10分
桶排序的方法就是建立一个大小为11的数组,a[0]-a[10]都初始化为0。
当有一个分数是1 那么a[1] = 1; 如果有两个分数都为1,那a[1] = 2。
所以依据这个思想 我们就可以简单的写个程序验证
#include <stdio.h>
int main(void)
{
int a[11],i,j,t;
for (i = 0; i <= 10; i++)
{
a[i] = 0;
}
for (i = 1; i <= 5; i++)
{
scanf("%d",&t);
a[t]++;
}
for (i = 0; i <= 10; i++)
for (j = 1; j <= a[i]; j++)
{
printf("%d",i);
}
return 0;
}
如果输入的是 5 1 3 8 2
那么输出的就是 12358