qsort函数怎么用
时间: 2024-01-06 14:24:34 浏览: 84
qsort函数是C语言中的一个标准库函数,用于对数组进行快速排序。它的使用方法如下:
1. 引入头文件:
```c
#include <stdlib.h>
```
2. 定义比较函数:
```c
int compare(const void *a, const void *b);
```
比较函数用于指定排序的规则,它接受两个参数,这两个参数是指向待比较元素的指针。比较函数需要返回一个整数值,表示两个元素的大小关系。如果返回值小于0,则表示第一个元素小于第二个元素;如果返回值等于0,则表示两个元素相等;如果返回值大于0,则表示第一个元素大于第二个元素。
3. 调用qsort函数进行排序:
```c
void qsort(void *base, size_t num, size_t size, int (*compare)(const void *, const void *));
```
qsort函数接受四个参数,分别是待排序数组的首地址base,数组中元素的个数num,每个元素的大小size,以及比较函数compare。调用qsort函数后,数组将按照指定的比较函数进行排序。
下面是一个示例,演示了如何使用qsort函数对整型数组进行排序:
```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);
printf("Sorted array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
这段代码首先定义了一个比较函数compare,然后创建了一个整型数组arr,并计算了数组的长度n。接下来,调用qsort函数对数组进行排序,最后打印排序后的数组。
阅读全文