桶排序就是将对应的数分配到对应的桶里。
这里需要注意的就是假如你需要排序的数的范围是(0~1000), 你就要分配1001个桶,即定义一个一维数组的长度为1001。例如
int arr[1001];
讲对应的数分配到对应的下标数组元素中,所以在分配之前我们就要将一维数组进行初始化。
代码实现:
#define lenth 10
int x;
int main(int argc ,char **argv)
{
int arr[lenth];
for(int i = 0;i <= lenth;i++){
arr[i] = 0;
}
printf("please input number ");
for(int i = 0;i <= lenth;i++){
scanf("%d",&x);
arr[t]++;//当该元素出现一次时,就将数组元素自加一
}
for(int i = 0 ;i <= lenth;i++){//升序排序
for(int j = 1;j <=arr[i];j++){
printf("%d ",i);
}
//降序排序时只需要将i初值赋值为数组的最右边下标即可。
}