跳转到内容

C 编程/stdlib.h/qsort

来自维基教科书,开放的书籍,为开放的世界

qsort 是一个用于对数组中的元素进行排序的函数。它以快速排序算法命名,尽管 C 标准不要求它使用任何特定的算法来实现。[1]

qsort 是一个通用函数,它可以对任何大小的数组进行排序,包含任何类型的对象(尽管如果对象的大小不同,则必须使用指针),并且使用任何类型的比较谓词。然而,通用性是以类型安全为代价的,因为 qsort 操作空指针。

void qsort(void *base, size_t nmemb, size_t size, int (*compare)(const void *, const void *));

数组的内容根据比较函数 compare 指向的顺序排序。当项目比较相等时,它们在结果数组中的顺序是不确定的,这意味着 qsort 不需要是稳定的排序。

参考资料

[编辑 | 编辑源代码]
  1. ISO/IEC 9899:1999 规范 (PDF). p. 319, § 7.20.5.2.
[编辑 | 编辑源代码]
华夏公益教科书