现在,现代机器都是多核的,并且我们在带有 SSE 指令的 Windows 和 Linux 机器上支持 SIMD 指令,例如,我是否应该在我的 C/C++ 代码中切换到合并排序而忘记快速排序?从理论上讲,这样做的原因是合并排序会更好地并行化并更节省地使用内存/磁盘,因此比 QuickSort 的内存密集型操作更快,但我不知道。实践经验说明了什么?
我不想在每次排序时都进行分析和测试。我想使用一种标准方法。目前这种方法是快速排序,因为这是默认的库排序例程。我想知道是否还有其他人已经切换到 MergeSort 并通过切换获得了更好的结果。
更新 - - - - - -
Graham.Reeds 回答std::sort 和 std::stable_sort 在实践中的性能差距有多大?表明我上面的猜测是正确的,切换到 MergeSort/stablesort 可能是正确的。