-3

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

4

2 回答 2

6

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

值得注意的是,与qsort()接口比较是相当昂贵的;任何增加比较次数以减少移动次数的排序算法(如果您不洗牌指针也可能很昂贵)可能会导致性能下降。但是,这是库实现者需要关注的问题。除非你发现这个库的实现很糟糕(现在这不太可能),否则不要担心。

C++sort算法可以围绕 C 的qsort.

于 2013-08-26T00:11:30.803 回答
1

C11 标准没有规定。所以任何合理的 O(n log n) 都是可以接受的。

于 2013-08-26T00:12:11.850 回答