c - qsort() 使用哪种排序算法?

标签 c sorting optimization qsort

该功能是否qsort()stdlib.h实际上使用快速排序算法,顾名思义?

最佳答案

qsort() 函数可以使用库实现者选择的任何排序算法来实现,但名称表明该算法应该接近最优。使用 O(N2) 算法是允许的,但这是一个主要的 QoI(实现质量)问题。

值得注意的是,使用 qsort() 接口(interface)进行比较的成本相当高;任何增加比较次数以减少移动次数的排序算法(如果不打乱指针,这也可能是昂贵的)可能会导致性能下降。然而,这是库实现者需要关心的一个问题。除非您发现该库的实现很糟糕(现在这种情况不太可能发生),否则请使用它并且不用担心。

C++ sort 算法可以围绕 C 的 qsort 运行环。

关于c - qsort() 使用哪种排序算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18434957/

相关文章:

c++ - 将 DJB 哈希转换为 64 位

c - 为什么我收到 'Incompatible pointer type' 警告?

c - 在 C 编译期间是否有解析或修改字符串的方法?

javascript - 为什么这个 JavaScript 程序比 C++ 更快地填充一个大数组?

c# - C#中迭代器的内存使用

c++ - 没有 if-else 语句的一维卷积(非 FFT)?

检查堆栈分配是否失败?

python - 在 Python 中排序的最快方法

algorithm - K-way归并排序在多台主机上划分

perl - 如何比较两个文件之间的值?