C 语言 qsort() 函数用于对数组进行快速排序,需要传入比较函数。
原型
void qsort(void *base, size_t num, size_t size,
int (*compar)(const void *, const void *));compar 是比较函数:返回负/零/正表示第一个参数小于/等于/大于第二个。
示例
#include <stdio.h>
#include <stdlib.h>
int cmp(const void *a, const void *b) {
return (*(int *)a - *(int *)b);
}
int main() {
int arr[] = {5, 2, 8, 1, 9, 3};
qsort(arr, 6, sizeof(int), cmp);
for (int i = 0; i < 6; i++) printf("%d ", arr[i]);
printf("\n");
return 0;
}输出:
1 2 3 5 8 9注意事项
比较函数必须严格按 const void* 参数编写,否则未定义行为。