请稍等 ...
×

采纳答案成功!

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

老师您先看图,归并排序问题,有个小问题

图片描述
老师,归并排序有个问题,这个画出来的地方实在搞不懂,为啥前面数组的标记超了它最后一个元素位置就给a[k]赋值上后面数组中标记的头部元素的值呢?而且前面两个判断为啥放在后两个判断的前面?我试了试如果不加或者放后面都会数组角标越界,后两个else if条件这里也给我迷了半天,有等于的时候必须得选出较小的那个元素赋上值,这里很精巧,否则排出来就错了 : )

正在回答

2回答

liuyubobobo 2021-05-01 17:14:57

fF > middle,说明前面的半个数组都已经处理完了,现在只剩下后面的半个数组还有元素没有处理了;

sF > r,说明后面的半个数组都已经处理完了,现在只剩下前面的半个数组还有元素没有处理了;

请仔细理解一下 fF 和 sF 到底是什么意思。他们指向了当前待处理的前面数组的元素和后面数组的元素,但超过了“界”,就说明处理完了。


先判断这两个情况,是因为要保证 fF 和 sF 在“界”内,换句话说,保证前半段和后半段数组都还有元素没有处理,下面的两个判断,则是针对前半段的一个还没有处理的元素和后半段的一个还没有的元素做比较。


继续加油!:)

1 回复 有任何疑惑可以回复我~
  • 提问者 我会回来的333 #1
    老师您看下我那个结论,解决了,继续找下一个问题答案
    回复 有任何疑惑可以回复我~ 2021-05-01 23:06:09
提问者 我会回来的333 2021-05-01 23:05:08

https://img1.sycdn.imooc.com//szimg/608e506a0936b64209440554.jpg

//img1.sycdn.imooc.com//szimg/608d67640984077908440631.jpg

这是算法4里面的图,老师,找找了

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信