C语言确定索引顺序的计数排序
时间: 2024-01-05 22:03:42 浏览: 37
计数排序是一种非比较排序算法,可以用于确定索引顺序。在C语言中,你可以使用以下代码实现计数排序:
```c
#include <stdio.h>
#include <stdlib.h>
void countingSort(int arr[], int n) {
int max = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
int count[max + 1];
for (int i = 0; i <= max; i++) {
count[i] = 0;
}
for (int i = 0; i < n; i++) {
count[arr[i]]++;
}
int output[n];
int index = 0;
for (int i = 0; i <= max; i++) {
while (count[i] > 0) {
output[index++] = i;
count[i]--;
}
}
for (int i = 0; i < n; i++) {
arr[i] = output[i];
}
}
int main() {
int arr[] = {4, 2, 9, 6, 5, 1, 8, 3, 7};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Original array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
countingSort(arr, n);
printf("Sorted array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在上述代码中,`countingSort` 函数实现了计数排序算法。首先,它找到数组中的最大值,并根据最大值创建一个计数数组 `count`。然后,它遍历原始数组 `arr`,将每个元素的出现次数记录在计数数组中。接下来,它根据计数数组中元素的出现次数,按照索引顺序将元素填充到输出数组 `output` 中。最后,将输出数组中的元素复制回原始数组,完成排序。
运行上述代码,你将得到以下结果:
```
Original array: 4 2 9 6 5 1 8 3 7
Sorted array: 1 2 3 4 5 6 7 8 9
```
这样,你就使用计数排序算法确定了索引顺序。希望对你有帮助!如果你有其他问题,请随时提问。
相关推荐
![](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)