逆序对
前一个数字大于后某一数字,这两个数字构成一个逆序对。
涉及知识点
归并排序
暴力查找
Vector向量容器
求解一个数组种的逆序对数目,可以通过暴力查找实现,也可以通过归并的思想实现。
分治思想
归并排序是一种与逆序对关系紧密的排序方法,是分治算法的一种,充分体现了分而治之的算法思想。
其分的过程,即通过二分法,将长数组不断划分为短数组,将长数组排序的问题转换为短数组排序的问题。
其治的过程,即从长度为1的数组长度开始向上合并,不断的将较短的数组合并为较长的数组,直至合并为原长度数组。
合并的过程就是不断的排查逆序对的过程,当左子数组的元素值大于右子数组的元素值时,这两个元素构成逆序对。将两个小的子数组合并为一个拍好序的排序数组,就是找到了这两个小数组之间的所有逆序对,重复该过程,即可完成所有逆序对的寻找。
暴力查找
int violence_inversion_pair(vector<int>& nums