三个排序速度的问题

三个排序速度的问题

我这边是使用golang实现的:

数组长度为100000

以下是运行截图

http://img1.sycdn.imooc.com//climg/600670ed09868e8806870161.jpg

让我很迷惑的是这其中归并排序并不是最快的,插入排序反而是最快的,我尝试使用更大的数据集

http://img1.sycdn.imooc.com//climg/600671320901e79107200219.jpg

结果还是如此。

如果说是因为golang底层实现的原因的话,差距和视频中相差的也太多了

以下是我归并排序和插入排序的代码:

http://img1.sycdn.imooc.com//climg/600671e50932a3ae07190378.jpghttp://img1.sycdn.imooc.com//climg/6006720009b264f309140345.jpghttp://img1.sycdn.imooc.com//climg/6006720e09b3f0b911300738.jpg

或者是我选择排序实现的有问题吗

并且我这插入排序应该也是不存在先排好序的情况,因为我是让InsertionSort第一个先运行的

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

登陆购买课程后可参与讨论,去登陆

2回答
liuyubobobo 2021-01-19 18:22:31

你的 Insertion 排序的实现是错误的。


首先下面的 for 循环没有使用你暂存的 temp,其次,移动元素的过程是 arr[j] = arr[j - 1]


​你的这个 Insertion Sort 应该改变了原数组的元素,我们课程中的 isSorted 验证不出这个情况。你可以打印输出一下你的 insertion 结果检验一下。


继续加油!:)

当个废物挺好_66 2021-01-19 15:06:09

看看你测试的代码

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
算法与数据结构
  • 参与学习       2589    人
  • 解答问题       1090    个

慕课网算法名师Liuyubobobo,5年集大成之作 从0到工作5年,算法与数据结构系统解决方案

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师