请稍等 ...
×

采纳答案成功!

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

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

插入代码

1回答

liuyubobobo 2019-07-29 02:18:33

每次逆序对数量添加的过程,是当前右半部分指的那个元素,比左半部分指的元素小,右半部分的这个元素,和所有左半部分未处理的元素构成了逆序对。关键词是“未处理”。已经处理的元素没有影响。


请再仔细理解我的代码中的注释。

https://img1.sycdn.imooc.com//szimg/5d3de59c094020ab13741434.jpg


建议使用一个小的测试用,比如8, 7, 6, 5, 4, 3, 2, 1,实际跟踪一下这个程序,注意看一下,每次我们计算逆序对的时候,计算的是多少?这个数值到底表示哪些逆序对?有没有重复?有没有遗漏?


如果你认为if(j > r)的地方需要添加数值,这些数值对应的是哪些逆序对?(一旦你去具体思考是哪些逆序对,就会更清楚自己哪里想的不对了:))


继续加油!:)

2 回复 有任何疑惑可以回复我~
  • 老师有可以把这段代码git地址粘出来吗?我找了github上没有找到,谢谢。
    回复 有任何疑惑可以回复我~ 2021-02-02 19:28:15
  • C++ 版:https://git.imooc.com/coding-71/coding-71/src/master/03-Sorting-Advance/Course%20Code%20%28C++%29/Optional-04-Inversion-Number/main.cpp Java 版:https://git.imooc.com/coding-71/coding-71/src/master/03-Sorting-Advance/Course%20Code%20%28Java%29/Optional-04-Inversion-Number/src/bobo/algo/InversionCount.java 继续加油!:)
    回复 有任何疑惑可以回复我~ 2021-02-02 23:16:04
  • 谢谢老师,真的太负责了。这个看完我继续买老师的课程。
    回复 有任何疑惑可以回复我~ 2021-02-04 10:04:52
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号