代码点读机 / C / qsort

qsort C · 内存管理

用快速排序算法对数组进行排序。

怎么用

qsort(数组, 元素个数, 每个元素大小, 比较函数);

小例子

#include <stdio.h>
#include <stdlib.h>
int cmp(const void* a, const void* b) {
    return (*(int*)a - *(int*)b);
}
int main(void) {
    int a[] = {3, 1, 2};
    qsort(a, 3, sizeof(int), cmp);
    printf("%d %d %d", a[0], a[1], a[2]);
    return 0;
}

运行结果

输出 1 2 3

提醒:比较函数要返回负数、0、正数;整数相减可能溢出,安全写法用 (a>b)-(a<b)

官方文档:https://en.cppreference.com/w/c/algorithm/qsort

在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← C全部词条