C 标准库 - <stdlib.h>

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* 参数编写,否则未定义行为。