我来提供第三个归并排序的优化办法
来源:3-1 归并排序法 - Merge Sort
潇潇雨歇兮我材天生
2020-03-26
经过测试,这种优化方式,当处理的数据越大,优化效果就越明显。
当然看图就知道了,因为减少2Nlong(N)-2次的临时数组内存空间的开辟和撤销操作。
写回答
3回答
-
感谢分享:)
如果我没有理解错,你的方式是整体只开一次临时数组。是的,这是归并排序的一个重要的优化,我在这个课程的补充代码中提供了这个思路的参考代码,可以参考这里:https://github.com/liuyubobobo/Play-with-Algorithms/blob/master/03-Sorting-Advance/Course%20Code%20(C%2B%2B)/Optional-01-MergeSort-Create-aux-Array-Out-of-Merge/MergeSort2.h
继续加油!:)
022020-03-28 -
潇潇雨歇兮我材天生
提问者
2020-03-26
殊途同归,举一反三。
00 -
潇潇雨歇兮我材天生
提问者
2020-03-26
将临时数组作为指针传递即可,对了,如此设计以后,还可以不用再去 索引定位执行-left的操作,看来优化的次数远比我说的还要多的多。
各位同学和老师如何看?虽然这并不能引起数量级的改变,但是减少一半多以上时间是轻易地了。
00
相似问题