经常做题的同学难免会遇到使用桶排的时候,桶排一般用于计数,计算数字出现的,我们用一个数组去记录数字,用另一个数组去当“桶”存储数字并输出出现的次数。
用代码实现:
int a[10]={0};
int b[10];
数组b用于记录数字出现的次数,出现一次就在对应的数字上加1,我们假设输入从0~9十个数并计算出现次数(当然具体情况具体分析,注意有时候桶数组下标要比输入数组大,方便计数)。
此时对a数组进行判断并放进桶(b数组)中:
for(int i=0;i<10;i++){
scanf("%d",&a[i]);
}
完整代码:
#include <stdio.h>
int a[10]={0};
int b[10];
int main()
{
for(int i=0;i<10;i++){
scanf("%d",&a[i]);
}
for(int i=0;i<10;i++){
if(a[i]>=0&&a[i]<=9){
b[a[i]]++;
}
}
for(int i=0;i<10;i++){
printf("%d:%d\n",i,b[i]);
}
return 0;
}
运行结果如:
C语言初学者,若有错误烦请指出,万分感谢。
希望文章能对学习桶排序有所帮助。