摘要:n个元素组成的置换a[1],a[2],…,a[n]。若ia[j],则称(a[i],a[j])是一个逆序对。置换中逆序对的个数称为置换的逆序数。按定义,计算逆序数要通过n(n-1)/2此次比较,时间复杂度是O(n2)。设计了一种新的方法,利用树状数组计算逆序数,时间复杂度降为O(nlog2(n))。主要思路是将元素从大到小依次放置在数状数组中,对于每一个元素i来说,因它前面的数比它大而计算出逆序数t[i],利用树状数组的结构特征,即可以O(log2(n))的时间复杂度而统计出t[i],那么最终总的逆序数为∑t[i]。