摘要:
inversion就是逆序对题目:现给出一个数列,求该数列中的逆序对数(逆序数)。本节给出三种方法:方法一是最直接的暴力方法;方法二是基于归并分治的思想;方法三是基于线段树的。【解法一】暴力方法最直接,也最容易想到,两层for循环就可以算出来逆序数:每遇到一个元素回头遍历寻找比其大的元素个数即可,当然向后寻找比其小的元素个数也可以,复杂度为O(n^2),代码:123456789101112int sum = 0;for(int i = 0; i arr[j]){++sum;}}}return sum;【解法二】这种方法最初见于《算法导论》,这里先附上《算法导论》2-4关于逆序对的几点讨论:1. 阅读全文