关于STL中sort效率高于C库函数qsort
std::sort()比C标准库qsort快是肯定的,能快一倍,对于这一点的解释向来有两种,并且从STL的源码中也得到了确认。
一种是sort不是快速排序,而是多种排序的结合,这一点得到确认,STL的sort源码中可以看到快速排序、堆排序、归并排序等多种排序方式的结合,但是qsort在效率上也是做了优化的,比起一般快排要快得多,三种排序的结合又没有可能让STL的sort再比qsort快上一倍?
更多的说法是说qsort最后一个参数回调函数的影响,多次调用造成的后果。这也是肯定有开销的,但是使用改用内联并没有效率上的提升。
许多理论上的说法在实践中受多种因素的干扰往往会走样。
大家畅所欲言
一种是sort不是快速排序,而是多种排序的结合,这一点得到确认,STL的sort源码中可以看到快速排序、堆排序、归并排序等多种排序方式的结合,但是qsort在效率上也是做了优化的,比起一般快排要快得多,三种排序的结合又没有可能让STL的sort再比qsort快上一倍?
更多的说法是说qsort最后一个参数回调函数的影响,多次调用造成的后果。这也是肯定有开销的,但是使用改用内联并没有效率上的提升。
许多理论上的说法在实践中受多种因素的干扰往往会走样。
大家畅所欲言
...全文
相关推荐
qsort 与sort 的比较
在c++中qsort()排序函数的使用qsort函数应用大全,在同样的元素和同样的比较条件下,sort()的执行速度都比qsort()要快。另外,sort()是类属函数,可以用于比较任何容器,任何元素,任何条件。
C中qsort快速排序使用实例
在学习C++ STL的sort函数,发现C中也存在一个qsort快速排序,要好好学习下C的库函数啊
sort()与qsort()排序详解[源码]
本文详细介绍了C语言中的qsort()函数和C++中的sort()函数的使用方法及其区别。qsort()是C标准库中的快速排序函数,适用于任何数据类型,但需要用户提供比较函数,且为非稳定排序。sort()是C++标准库中的排序函数,主要用于容器元素排序,支持自动调用和自定义调用,通常为稳定排序。文章通过代码示例展示了两种函数在整形、字符、浮点、字符串及结构体等多级排序中的应用,并对比了它们的优缺点,包括通用性、效率、稳定性和易用性等方面的差异。
sort函数的常见用法用法
做ACM题的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错
C++中的Qsort
C++ 中的2个重要的STL函数,方便快捷


