给定n个[0,1000]范围内的数字,用计数排序将它们排序后输出,请给出具体C语言代码
时间: 2024-04-29 10:23:01 浏览: 60
计数排序算法的C语言实现
5星 · 资源好评率100%
以下是使用计数排序的C语言代码:
```
#include <stdio.h>
void countingSort(int arr[], int n) {
int count[1001] = {0}; // 初始化计数数组
int output[n]; // 创建输出数组
int i;
// 计算每个数字出现的次数
for (i = 0; i < n; i++) {
count[arr[i]]++;
}
// 计算每个数字在输出数组中的位置
for (i = 1; i <= 1000; i++) {
count[i] += count[i-1];
}
// 将数字按照计数数组中的位置放入输出数组中
for (i = n-1; i >= 0; i--) {
output[count[arr[i]]-1] = arr[i];
count[arr[i]]--;
}
// 将输出数组复制回原始数组
for (i = 0; i < n; i++) {
arr[i] = output[i];
}
}
int main() {
int n;
scanf("%d", &n);
int arr[n];
int i;
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
countingSort(arr, n);
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
阅读全文