C言语有没有排序函数
时间: 2024-10-06 10:05:24 浏览: 16
C语言标准库并没有提供直接的快速排序(Quick Sort)、归并排序(Merge Sort)等高级排序算法的现成函数,但它提供了基础的数组排序操作。比如你可以使用`qsort()`函数对数组进行通用的比较式排序,但这需要你自己编写分治策略的排序代码。
C标准库中的`sort()`函数实际上是`stdlib.h`的一部分,它可以对`void *`类型的输入进行排序,如果你有一个特定的数据结构,并能提供比较函数(`int (*)(const void *, const void *)`),那么可以使用这个函数对自定义数据进行排序。例如,对于整数数组,你可以这样做:
```c
#include <stdio.h>
#include <stdlib.h>
// 自定义比较函数
int compare(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
int main() {
int arr[] = {5, 2, 8, 1, 9};
int n = sizeof(arr) / sizeof(arr[0]);
// 对数组进行排序
qsort(arr, n, sizeof(int), compare);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
阅读全文