【算法分析】
举个例子:将下面两个区间排序
ai:3 4 7 9
R1 = 4
aj: 1 5 8 10
首先将右区间的1取出,放在 tmp 中,此时 1 比每个ai中的元素都小,得到的逆序对的数量是4。tmp:1
然后再将ai和aj比较(直到ai<aj),ai<aj时将ai的元素发在tmp中。tmp:1 3 4
现在aj>ai,i指向a3的位置,将5放在tmp中,得到的逆序对的数量为2。tmp: 1 3 4 5
以此类推,直到进行完归并排序,每次合并都会求出逆序对的数目为:R1-i+1,最后让 ans 加上R1-i+1得到答案。
【参考代码】
【时间复杂度】
O(nlog2n)O(nlog_2n)O(nlog2 n)
【预计得分】
100pts100pts100pts