归并排序求逆序对

来源:3-9 归并排序和快速排序的衍生问题

weixin_慕尼黑2067412

2019-07-28

图片描述

写回答

1回答

liuyubobobo

2019-07-29

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


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

//img.mukewang.com/szimg/5d3de59c094020ab13741434.jpg


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


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


继续加油!:)

2
3
Nihaomamama
回复
liuyubobobo
谢谢老师,真的太负责了。这个看完我继续买老师的课程。
2021-02-04
共3条回复

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11187 学习 · 1614 问题

查看课程