qsort 函数如何使用?
时间: 2024-06-12 20:09:25 浏览: 103
qsort函数是一个C语言标准库中的函数,用于对数组进行排序。它使用了快速排序算法来实现排序功能。下面是qsort函数的使用方法:
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 *));
```
- base:指向要排序的数组的指针。
- num:数组中元素的个数。
- size:每个元素的大小(以字节为单位)。
- compare:比较函数的指针。
举个例子,我们要对一个整型数组arr进行排序,可以按照以下方式调用qsort函数:
```c
#include <stdio.h>
#include <stdlib.h>
int compare(const void *a, const void *b) {
int num1 = *(int *)a;
int num2 = *(int *)b;
return num1 - num2;
}
int main() {
int arr[] = {5, 2, 8, 1, 9};
int size = sizeof(arr) / sizeof(arr[0]);
qsort(arr, size, sizeof(int), compare);
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输出结果为:1 2 5 8 9,表示数组已经按照升序进行了排序。
阅读全文