生成桶排序的C语言实现
时间: 2024-05-05 20:15:37 浏览: 49
C语言实现bucketSort.rar
下面是一个简单的桶排序的C语言实现示例:
```
#include <stdio.h>
#define MAX_VALUE 100 // 假设待排序的数的范围是 [0, 100]
void bucket_sort(int *arr, int len) {
int i, j, count[MAX_VALUE + 1];
memset(count, 0, sizeof(count)); // 初始化计数器数组
for (i = 0; i < len; i++) {
count[arr[i]]++; // 统计每个数出现的次数
}
for (i = 0, j = 0; i <= MAX_VALUE; i++) {
while (count[i]-- > 0) {
arr[j++] = i; // 把计数器数组中的数按顺序放回原数组中
}
}
}
int main() {
int arr[] = {9, 3, 1, 4, 6, 8, 7, 5, 2, 0};
int len = sizeof(arr) / sizeof(arr[0]);
bucket_sort(arr, len);
printf("排序后的结果为:\n");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在该示例中,我们使用了一个计数器数组来统计每个数出现的次数,并把计数器数组中的数按顺序放回原数组中,从而实现了桶排序。
阅读全文