什么是桶排序
桶排序,一种老生畅谈的排序方法,其思路就是将一组数据放进有限数量的“桶子”里,然后在对每个桶子进行分别排序,从而达到将这组数据从无序变为有序的过程
桶排序的局限
个人认为,桶排序其最大的缺陷就在于要对其有一个上限的限制(个人的一点愚见,或许有大神可以解决这个问题吧。。。)
代码思路
可以吧这些进行排序的“桶”看成是数组,而刚刚所说的上限,就可以看作是数组的元素数量,例如对一组数据进行排序,这组数据的大小范围控制在0-100之间,那就可以声明一个有101个元素的数组int a[101],然后给每个数组元素赋值为0,然后开始接收数据,例如现在接收到一个数据为2,那就让a[2]++,以此类推,有几个数据就进行几次循环,最后再进行数据的输出,此时可以按照数组下标的顺序进行输出,这就达到了一个排序的作用,例如,现在有有一组数据:0,5,3,5,2,4,2那现在输出的结果就是0,2,2,3,4,5,5
C语言代码
#include<stdio.h>
int main()
{
printf("please enter:\n");
int a[100],t,max=sizeof(a)/sizeof(int);
for(int i=0;i<max;i++)
a[i]=0;
for(int j=0;j<5;j++)
{
scanf("%d",&t);
a[t]++;
}
for(int k=0;k<max;k++)
for(int y=0;y<a[k];y++)
printf("%d ",k);
return 0;
}
(当然这只是为了说明以上内容的一个简单的示例代码,萌新发表一下愚见,大神不喜勿喷)