请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

快排的效率比其他的排序效率低

老师,你好,我在win10上用VS2013跑的快速排序的效率非常低,100000个数据归并是0.5秒,而快速排序的1.2秒。用的是你的代码非常不解

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2016-12-02 11:48:05

使用VS的同学,在做算法性能测试的时候,请一定使用Release模式运行程序!不然,VS会在Debug模式下的标准库中做一些其他事情,另外运行器也使用的是未优化的版本,从而拖慢算法的执行速度,使得算法性能的比较不准确。可以尝试测试一下,在VS Debug模式下,std::swap的速度非常慢,甚至比自己写的swap还要慢。而我们在归并排序中,没有使用std::swap,所以在debug模式下就会比快排还要快了。


请在VS窗口上方的tool bar上,将运行模式调为Release,再试试看:)


https://img1.sycdn.imooc.com/szimg//5840ee900001945306280184.jpg

9 回复 有任何疑惑可以回复我~
  • 已经调成了release模式,结果一样的还是快排没有归并好。
    回复 有任何疑惑可以回复我~ 2018-01-22 15:57:07
  • 继续往下看,课程会一点一点对快排做优化的:)
    回复 有任何疑惑可以回复我~ 2018-01-22 17:02:57
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信