c语言桶排序算法实现代码
时间: 2023-10-14 13:26:23 浏览: 132
C语言实现bucketSort.rar
Sure! 桶排序的一般步骤为:
1. 设置一个定量的数组当作空桶子。
2. 输入数据,并将数据放置到对应的桶子里去。
3. 对每个不是空的桶子进行排序。
4. 从不是空的桶子里把排好序的数据拼接起来。
以下是 C 语言实现桶排序算法的代码示例:
```
#include <stdio.h>
#include <stdlib.h>
void bucketSort(int arr[], int n)
{
int i, j;
int *count = NULL;
count = (int *)malloc(sizeof(int) * n);
for (i = 0; i < n; i++)
count[i] = 0;
for (i = 0; i < n; i++)
(count[arr[i]])++;
for (i = 0, j = 0; i < n; i++)
for (; count[i]>0; (count[i])--)
arr[j++] = i;
free((void *)count);
}
int main()
{
int arr[] = { 1, 5, 3, 0, 2, 4, 6, 8, 9, 7 };
int n = sizeof(arr) / sizeof(arr[0]);
int i;
printf("Before sorting:\n");
for (i = 0; i < n; i++)
printf("%d ", arr[i]);
bucketSort(arr, n);
printf("\nAfter sorting:\n");
for (i = 0; i < n; i++)
printf("%d ", arr[i]);
return 0;
}
```
希望对你有所帮助!
阅读全文