C 语言排序计数如何输出?
时间: 2024-03-24 18:36:38 浏览: 17
排序计数可以理解为对一个数组进行排序,并统计每个元素在排序过程中移动的次数。在 C 语言中,可以通过以下代码实现排序计数并输出每个元素的移动次数:
```c
#include <stdio.h>
void countSort(int arr[], int n) {
int i, j, count;
int *temp = malloc(n * sizeof(int));
for (i = 0; i < n; i++) {
count = 0;
for (j = 0; j < n; j++) {
if (arr[j] < arr[i]) {
count++;
} else if (arr[j] == arr[i] && j < i) {
count++;
}
}
temp[count] = arr[i];
printf("%d moved %d times\n", arr[i], count);
}
for (i = 0; i < n; i++) {
arr[i] = temp[i];
}
free(temp);
}
int main() {
int arr[] = {4, 3, 2, 1};
int n = sizeof(arr) / sizeof(arr[0]);
countSort(arr, n);
printf("Sorted array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在上述代码中,`countSort` 函数实现了排序计数的功能,对于每个元素,都会计算出它在排序过程中移动的次数,并输出。最后,函数将排序后的数组存储在 `temp` 数组中,并将其复制回原数组中。在 `main` 函数中,我们调用 `countSort` 函数并输出排序后的数组。
相关推荐
![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)