sort函数c语言
时间: 2023-08-24 10:17:38 浏览: 105
C语言中的sort
C 语言标准库中的 `qsort()` 函数可以实现排序,它可以对任意类型的数组进行排序。`qsort()` 函数的原型如下:
```c
void qsort(void *base, size_t nitems, size_t size,
int (*compar)(const void *, const void *));
```
其中,`base` 是指向待排序数组的指针,`nitems` 是数组中元素的个数,`size` 是每个元素的大小,`compar` 是指向比较函数的指针。
比较函数是用来指定排序规则的函数,它接受两个指向待比较元素的指针,如果第一个元素小于第二个元素,则返回一个负数,如果两个元素相等,则返回 0,否则返回一个正数。比较函数的原型如下:
```c
int compar(const void *a, const void *b);
```
下面是一个使用 `qsort()` 函数对整型数组进行升序排序的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int cmpfunc(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
int main() {
int arr[] = { 10, 5, 8, 3, 1 };
int n = sizeof(arr) / sizeof(arr[0]);
qsort(arr, n, sizeof(int), cmpfunc);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
运行结果为:
```
1 3 5 8 10
```
在比较函数 `cmpfunc()` 中,我们将两个指针所指向的整数进行比较,如果第一个整数小于第二个整数,则返回 -1,否则返回 1,这样就实现了升序排序。
阅读全文