选择排序的优化反而比原本的更慢了

来源:2-7 更多关于O(n^2)排序算法的思考

Anthony_Duan

2018-07-27

您给的代码中有一小节是优化选择排序的,思路巧妙,每一轮中找到当前未处理元素的最大值与最小值,但是这种算法测试效果却还没有原本没有优化的好,请问是什么原因,我感觉比原来的应该快近一倍,事实上慢了许多。下面的InsertionSort是您优化过的。

http://img.mukewang.com/szimg/5b5ae49100015c2510760421.jpg


写回答

1回答

liuyubobobo

2018-07-27

很奇怪,我无法解释。我刚才测试了一下,在我的计算机上,优化后的SelectionSort2稳定的优于不优化的SelectionSort,除了对于第二个测试用例,包含大量重复数据的数组。(jdk1.8.0_131)


对于你的测试结果,我只能猜测和jvm的内部优化有关,甚至调用顺序都会对性能有影响。毕竟java是运行在虚拟机上的,虚拟机的具体实现会对代码效率产生很大影响。比如这个问答:https://coding.imooc.com/learn/questiondetail/30054.html


抱歉没有回答你的问题。


加油!

0
4
Anthony_Duan
回复
liuyubobobo
好的 谢谢
2018-07-27
共4条回复

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11187 学习 · 1614 问题

查看课程