linuxC++ 写一个int值的桶排序代码示例
时间: 2023-05-20 17:04:43 浏览: 56
以下是一个简单的 int 值的桶排序代码示例:
```c
#include <stdio.h>
#define MAX_VALUE 1000
void bucket_sort(int arr[], int n) {
int bucket[MAX_VALUE + 1] = {0};
int i, j;
for (i = 0; i < n; i++) {
bucket[arr[i]]++;
}
for (i = 0, j = 0; i <= MAX_VALUE; i++) {
while (bucket[i] > 0) {
arr[j++] = i;
bucket[i]--;
}
}
}
int main() {
int arr[] = {3, 6, 1, 8, 2, 9, 5, 4, 7, 0};
int n = sizeof(arr) / sizeof(arr[0]);
int i;
printf("Before sorting:\n");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
bucket_sort(arr, n);
printf("After sorting:\n");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
这个代码使用桶排序算法对一个 int 数组进行排序。首先,我们定义一个桶数组,大小为 MAX_VALUE + 1,其中 MAX_VALUE 是数组中最大的元素值。然后,我们遍历数组,将每个元素的值作为桶数组的下标,将桶数组对应下标的值加 1。接着,我们再次遍历桶数组,将桶数组中非零元素的下标按顺序输出到原数组中,即可得到排序后的数组。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)