【发布时间】:2011-08-28 13:27:15
【问题描述】:
从cplusplus.comstd::sort定义复杂度:
复杂性
平均大约 N*logN 次比较(其中 N 是最后一个)。 在最坏的情况下,最多 N2,具体取决于库实现使用的特定排序算法。
我的应用程序在运行时间上有一些限制。所以我需要知道是否应该实现自己的排序算法,否则只会浪费时间。它们是用 gcc 编译的,所以我需要知道 gcc 使用哪种排序算法。
【问题讨论】:
-
你能用比比较排序更好的方法吗?
-
只有在非常特殊的情况下,您才能获得比精心编写的 STL 提供的更快的程序。 STL 背后的想法之一就是使用 C++ 的工具来避免代价高昂的函数调用,并尽可能内联地进行操作。如果你得到更快的东西,成本将是巨大的。在深入“优化”之前测量瓶颈在哪里。
标签: c++ gcc time-complexity