请稍等 ...
×

采纳答案成功!

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

MergeSort测试时,使用了n=1000000这种大规模数据,程序就出现错误并退出

我在用MergeSort测试时,使用了规模n=1000000这种大规模。运行时插入排序还可以运行,但运行到归并排序的时候程序就出现错误并退出,请问为什么呢

正在回答

4回答

liuyubobobo 2017-01-20 09:17:07

耐心调试一下,看看你的程序是不是有什么错误。可以先运行一下课程的官方代码,看看是否ok?


https://github.com/liuyubobobo/Play-with-Algorithms/blob/master/03-Sorting-Advance/Course%20Code%20(C%2B%2B)/03-Merge-Sort-Advance/MergeSort.h


再和课程的官方代码比对一下,看看有没有什么逻辑问题? 

0 回复 有任何疑惑可以回复我~
  • 提问者 2333333hhhh #1
    蟹蟹
    回复 有任何疑惑可以回复我~ 2017-01-21 18:48:10
一束会飞的光 2017-02-17 21:14:23

T aux[r-l+1]; 改为  T* aux = new T[r - l + 1];   注意退出函数时应delete

0 回复 有任何疑惑可以回复我~
提问者 2333333hhhh 2017-01-21 18:47:21

已经知道错哪儿了。原来是在代码中把1和l弄混了。不好意思,老师

0 回复 有任何疑惑可以回复我~
提问者 2333333hhhh 2017-01-21 08:53:08

运行老师的代码依然在mergeSort的时候报错退出。其他排序都没错。n=100000时也不报错,n=500000就不行了。蒙圈了已经

0 回复 有任何疑惑可以回复我~
  • 有种可能是整型溢出,因为mid=(l+r)/2 l+r可能会很大;所以mergeSort虽然没报错,但是也不会运行出结果
    回复 有任何疑惑可以回复我~ 2017-07-24 10:10:12
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信