使用 java 代码多次测试,不使用插入排序优化反而更快

来源:3-3 归并排序法的优化

walkingway

2018-03-30

经过多次测试不使用下面插入排序的代码反而速度更快

if (r-l<15) {
    InsertionSort.sort(arr, l, r);
}

虽然也差距不大,10w 个随机数排序,未优化的反而平均快 50 ms 左右

写回答

1回答

liuyubobobo

2018-03-30

有可能,一方面可能和Java的语言版本有关。不同版本的Java,JVM有不同程度或者不同侧重的优化,比如这个问答中的情况:https://coding.imooc.com/learn/questiondetail/18545.html 


另外,也看测试方式。严谨一些建议尝试多次测试取平均值的方式试试看?看以参考这个问答:https://coding.imooc.com/learn/questiondetail/45075.html 其中提供了一个链接,我用多次测试取平均值的方式对几种排序算法又做了比较,可以参考。


另外,对这个优化,对多小的区间选择走插入排序,也会对性能产生影响,可以尝试改变15这个值试试看,相信是个很有意思的实验:)

0
0

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

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

11187 学习 · 1614 问题

查看课程