采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
我在用MergeSort测试时,使用了规模n=1000000这种大规模。运行时插入排序还可以运行,但运行到归并排序的时候程序就出现错误并退出,请问为什么呢
耐心调试一下,看看你的程序是不是有什么错误。可以先运行一下课程的官方代码,看看是否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
再和课程的官方代码比对一下,看看有没有什么逻辑问题?
蟹蟹
T aux[r-l+1]; 改为 T* aux = new T[r - l + 1]; 注意退出函数时应delete
已经知道错哪儿了。原来是在代码中把1和l弄混了。不好意思,老师
运行老师的代码依然在mergeSort的时候报错退出。其他排序都没错。n=100000时也不报错,n=500000就不行了。蒙圈了已经
有种可能是整型溢出,因为mid=(l+r)/2 l+r可能会很大;所以mergeSort虽然没报错,但是也不会运行出结果
登录后可查看更多问答,登录/注册
课程专为:短时间内应对面试、升职测评等艰巨任务打造
8.7k 21
5.7k 3
4.8k 5
1.3k 18