C语言中qsort排序
时间: 2025-01-29 11:18:50 浏览: 31
C语言中的`qsort`函数是一个通用的排序函数,定义在`stdlib.h`头文件中。它使用快速排序算法对数组进行排序。`qsort`函数的基本语法如下:
```c
void qsort(void *base, size_t num, size_t size, int (*compar)(const void *, const void *));
```
参数说明:
1. `base`:指向要排序的数组的第一个元素的指针。
2. `num`:数组中元素的个数。
3. `size`:数组中每个元素的大小(以字节为单位)。
4. `compar`:指向比较函数的指针。该函数比较两个元素,并返回一个整数值来指示它们的相对顺序。
比较函数应该具有以下签名:
```c
int compar(const void *a, const void *b);
```
比较函数应返回:
- 一个负整数,如果第一个参数 (`a`) 小于第二个参数 (`b`)。
- 零,如果第一个参数等于第二个参数。
- 一个正整数,如果第一个参数大于第二个参数。
下面是一个使用`qsort`对整数数组进行排序的示例:
```c
#include <stdio.h>
#include <stdlib.h>
int compare(const void *a, const void *b) {
int int_a = *(const int*)a;
int int_b = *(const int*)b;
return (int_a - int_b);
}
int main() {
int arr[] = {5, 2, 9, 1, 5, 6};
size_t num = sizeof(arr) / sizeof(arr[0]);
qsort(arr, num, sizeof(int), compare);
for (size_t i = 0; i < num; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在这个示例中,`compare`函数用于比较两个整数。`qsort`函数根据`compare`函数的返回值对数组进行排序。
阅读全文
相关推荐

















