我很难理解使用合并排序算法(https://gist.github.com/dvorobiov/2038501)进行反转计数的过程。 在第43行,
inversions += leftList.Count - i;
为什么不做
inversions++
答案 0 :(得分:0)
此行在(leftList[i] > rightList[j])
时执行。
这个事实意味着rightList[j]
小于leftlist
的所有正确部分-因此这种情况揭示了leftList.Count - i
个新的反演