c语言数组排序函数sort
时间: 2023-11-30 15:03:37 浏览: 80
C语言中的数组排序函数是`qsort`,该函数使用快速排序算法。
函数原型为:
```c
void qsort(void *base, size_t nmemb, size_t size,
int (*compar)(const void *, const void *));
```
参数解释:
- `base`:待排序的数组首地址。
- `nmemb`:数组中元素个数。
- `size`:每个元素的大小,以字节为单位。
- `compar`:比较函数的指针,用于比较两个元素的大小。
比较函数的原型为:
```c
int (*compar)(const void *, const void *)
```
比较函数需要返回一个整数值,表示两个元素的大小关系:
- 若返回值小于0,则表示第一个元素小于第二个元素。
- 若返回值等于0,则表示两个元素相等。
- 若返回值大于0,则表示第一个元素大于第二个元素。
示例代码:
```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, 1, 4, 2, 8};
int n = sizeof(arr) / sizeof(arr[0]);
// 排序
qsort(arr, n, sizeof(int), compare);
// 输出结果
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输出结果:
```
1 2 4 5 8
```
阅读全文