C语言简单的桶排序代码
void Arr(){
int arr = { 5,6,8,7,1,4,2,9};
int bucket = { 0 }; //定义一个桶数组用来记录arr中数值出现次数;并且初始化为0;
for (int k = 0; k < 8; k++) //arr 数组中有8个元素,所以循环8次;
{
bucket]++; //让arr的值作为bucket[下标],让这个下标中的值自增1;
}
printf("数组元素存入次数\n");
for (int j = 0; j < 10; j++)
{
printf("%d ", bucket);
}
printf("\n");
//打印排序结果
for (int i = 0; i < 10; i++)
{
if (bucket>=1)
{
bucket = i;
printf("%d ", bucket);
}
}
printf("\n");
}
int main()
{
Arr();
return 0;
}
bucket]++ 实际就等于 是bucket] = bucket]+1 数组有重复数的打印
void Arr()
{
int arr = { 5,6,2,7,1,4,2,9};
int bucket = { 0 }; //定义一个桶数组用来记录arr中数值出现次数;并且初始化为0;
for (int k = 0; k < 8; k++) //arr 数组中有8个元素,所以循环8次;
{
bucket]++; //让arr的值作为bucket[下标],让这个下标中的值自增1;
} //bucket]++ 实际就等于 是bucket] = bucket]+1
printf("数组元素存入次数\n");
for (int j = 0; j < 10; j++)
{
printf("%d ", bucket);
}
printf("\n");
//去重排序打印
for (int i = 0; i < 10; i++)
{
if (bucket>0)
{
printf("%d ", i);
}
}
printf("\n");
//直接排序打印
int k;
for (int i = 0; i < 10; i++)
{
if (bucket > 0)
{
k = bucket;
while (k > 0)
{
printf("%d ", i);
k--;
}
}
}
printf("\n");
}
int main()
{
Arr();
return 0;
} 捞个hb不容易 谢谢分享,辛苦了! 感谢分享 感谢楼主 谢谢分享 感谢楼主 感谢楼主分享,我瞧瞧