采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
debug实际结果是递归一会,再去执行__merge函数一会。 总的来说希望一次讲解。
我们一点一点来解决。
首先,如果只有两个元素,你是否能够理解我们的代码是怎么执行的?只有 [1, 0],输出是 [0, 1],你是否能理解是为什么?
1,归并排序的代码运行过程已经理解,谢谢老师提供的突破口。 2,这个地方用发现很多同学问, if( i > mid ){ // 如果左半部分元素已经全部处理完毕 arr[k] = aux[j-l]; j ++; }else if( j > r ){ // 如果右半部分元素已经全部处理完毕, arr[k] = aux[i-l]; i ++; 我的理解: 在并的过程中已经处理完的元素一定小于没有取的元素,因为先取走的都是值小的元素。
对 2 的理解非常正确。继续加油!:)
登录后可查看更多问答,登录/注册
课程专为:短时间内应对面试、升职测评等艰巨任务打造
9.5k 21
6.1k 3
5.6k 5
1.8k 18
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号