北京航空航天大学教授讲解, 非常清楚 https://www.ixigua.com/6852470382776025603?id=6852450934203613710 逆序对有三部分组成: S1:两个数都出现在左侧 S2:两个数都出现在右侧 S3:两个数分别出现在左侧和右侧 观察整个归并的过程,发现其实从最底层起,每个S3,其实就是由S1和S2“贡献”后出现的,就是说,我们如果一直记录了S3,那么就是S1+S2+S3 而在q[i]>q[j]时,tmp[k++]=q[j++]就是逆序的过程,就是需要记录的S3.而这个值是 ans+=mid-i+1; 可以用数列: 4 6 8 3 5 进行模拟 https://www.acwing.com/solution/content/18376/