用c++写一段桶排序的代码
时间: 2024-05-09 18:20:50 浏览: 18
下面是用C语言实现的桶排序代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX 10000 // 数组最大值
void BucketSort(int a[], int n) {
int i, j;
int *buckets;
// 初始化桶
if ((buckets = (int*)calloc(MAX, sizeof(int))) == NULL) {
printf("calloc failed\n");
return;
}
// 将元素放入桶中
for (i = 0; i < n; i++) {
buckets[a[i]]++;
}
// 将桶中元素按顺序放回原数组
for (i = 0, j = 0; i < MAX; i++) {
while (buckets[i]-- > 0) {
a[j++] = i;
}
}
free(buckets);
}
int main() {
int a[] = { 1, 7, 5, 9, 3, 6, 4, 8, 2 };
int n = sizeof(a) / sizeof(int);
int i;
printf("Before sorting:\n");
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
BucketSort(a, n);
printf("\nAfter sorting:\n");
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
该代码中使用了calloc()函数来初始化桶,将元素放入桶中,最后将桶中元素按顺序放回原数组。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)