请稍等 ...
×

采纳答案成功!

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

Process finished with exit code -1073741819 (0xC0000005)

测试1000000时会有这样的提示,不显示结果。
在测试100000时会正常显示结果。

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

1回答

liuyubobobo 2019-07-03 00:18:50

你的测试数据是不是近乎有序的数组?


对于近乎有序的数组,不使用随机化,每次递归划分将极度不平衡,整个递归树的深度近乎为n。当n过大,就会导致递归调用系统栈溢出。所以就有了课程后续介绍的优化:)


继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 Pinesong #1
    但是在mergeSort.h文件中,使用new的方法是可行的,课件里面没有用,而是注释掉了
    回复 有任何疑惑可以回复我~ 2019-07-03 01:27:44
  • liuyubobobo 回复 提问者 Pinesong #2
    关于mergeSort的问题,回复在你的另一个问答中了。是的,使用new开空间,是在系统堆中开空间,不占系统栈的内存,不会导致栈溢出。一个更好的方法,是在整个mergesort外开内存。可以参考这里:http://coding.imooc.com/learn/questiondetail/3115.html
    回复 有任何疑惑可以回复我~ 2019-07-03 01:31:06
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信