采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,归并排序有个问题,这个画出来的地方实在搞不懂,为啥前面数组的标记超了它最后一个元素位置就给a[k]赋值上后面数组中标记的头部元素的值呢?而且前面两个判断为啥放在后两个判断的前面?我试了试如果不加或者放后面都会数组角标越界,后两个else if条件这里也给我迷了半天,有等于的时候必须得选出较小的那个元素赋上值,这里很精巧,否则排出来就错了 : )
fF > middle,说明前面的半个数组都已经处理完了,现在只剩下后面的半个数组还有元素没有处理了;
sF > r,说明后面的半个数组都已经处理完了,现在只剩下前面的半个数组还有元素没有处理了;
请仔细理解一下 fF 和 sF 到底是什么意思。他们指向了当前待处理的前面数组的元素和后面数组的元素,但超过了“界”,就说明处理完了。
先判断这两个情况,是因为要保证 fF 和 sF 在“界”内,换句话说,保证前半段和后半段数组都还有元素没有处理,下面的两个判断,则是针对前半段的一个还没有处理的元素和后半段的一个还没有的元素做比较。
继续加油!:)
老师您看下我那个结论,解决了,继续找下一个问题答案
这是算法4里面的图,老师,找找了
登录后可查看更多问答,登录/注册
课程专为:短时间内应对面试、升职测评等艰巨任务打造
8.8k 21
5.7k 3
4.9k 5
1.4k 18