桶排序
为何叫桶排序呢?
想像标号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个桶,很浪费空间