C语言怎么将排序存入整形
时间: 2024-10-03 12:01:06 浏览: 40
在C语言中,如果你想对一组整数数组进行排序并将其结果存储回原数组,可以使用标准库函数`qsort()`,它是一个快速排序算法的实现。这里是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义比较函数,用于qsort()
int compare(const void *a, const void *b) {
return (*(int*)a - *(int*)b); // 升序排列,如果需要降序,只需改变减法符号
}
void sort_array(int arr[], int size) {
if (size > 1) {
qsort(arr, size, sizeof(int), compare);
}
}
int main() {
int unsorted_arr[] = {5, 2, 8, 1, 9};
int num_elements = sizeof(unsorted_arr) / sizeof(unsorted_arr[0]);
printf("Before sorting: ");
for (int i = 0; i < num_elements; i++) {
printf("%d ", unsorted_arr[i]);
}
sort_array(unsorted_arr, num_elements);
printf("\nAfter sorting: ");
for (int i = 0; i < num_elements; i++) {
printf("%d ", unsorted_arr[i]);
}
return 0;
}
```
在这个示例中,我们首先声明了一个`compare`函数,这是`qsort`所需的比较函数,它决定元素的顺序。然后,在`main`函数中,创建一个未排序的整数数组,调用`sort_array`函数对数组进行排序,并打印出排序前后的结果。
注意,如果你有特定的数据结构或者其他需求(例如链表),可能会有不同的实现方式。此外,对于大规模数据,快速排序不是最优选择,可以考虑其他更稳定的排序算法,如归并排序或堆排序。
阅读全文
相关推荐












