逆序对
如果存在正整數i, j使得1 ≤ i < j ≤ n而且A[i] > A[j],則<A[i], A[j]>這一個有序對稱為A的一個逆序對,也称作逆序。逆序對的數量称作逆序数。
设A为一个有n个数字的有序集(n>1),其中所有数字各不相同。
例如:数组<2,3,8,6,1>的逆序对为:<2,1> <3,1> <8,1> <8,6> <6,1>共5个逆序对。
对于<2,1>:1 ≤ 1 < 5 ≤ 5 ,A[1] >A[5],所以<A[1],A[5]>为一个合法的逆序对。
目前求逆序对数目比较普遍的方法是利用归并排序做到的时间复杂度。
当然,也可以利用树状数组、线段树来实现这种基础功能。复杂度均为。
定義
逆序
設為一個排列,如果而且, 這個序位或這一對元素被稱為是的一個逆序。通常逆序是對於排列的定義,但也可以用於序列:
設是一個序列(或多重排列)。如果而且, 這個序位或這對元素被稱為是的一個逆序。
對於根據元素組成的序列,逆序的定義不是唯一的,因為不同的序位上可能有相同的值對。逆序集是所有逆序的集合。一個排列依其序位而定義的逆序集是,它的反向排列依其序位而定義的逆序集,反之亦然,只是交換了配對的元素。
逆序數
逆序數是逆序集的基數,它常用於量度排列或序列的已排序程度。
在一個排列的箭頭指向圖中,它是箭頭指向相交叉的數,也是從自指(identity)排列而得到的Kendall tau距離,以及每個反向相關向量的和,如下列定義。
對於逆序數,依序位或依元素而定義的分別並不重要,因為排列及其反向排列都具有相同的逆序數。
其它測量(預先)排序程度的方式,包括了為排好序列而從序列中可以刪除元素的最小數量,對序列所“進行”排序的次數和長度,每個元素在已排序位置之上的距離總和(Spearman footrule),以及排序過程中必需的最少交換次數。比較排序算法計算逆序數的時間為O(n log n)。
相關聯的逆序向量
有三個類似的向量用於將排列的逆序,壓縮到確定唯一的向量中。它們通常被稱為逆序向量或Lehmer碼。本文將逆序向量記為(),其它的兩個向量有時分別稱為左和右逆序向量;為了避免與前面的逆序向量混淆,本文將另兩個分別稱為左逆序計數和右逆序計數。左逆序計數是以反向colexicographic次序的排列,右逆序計數則是以字典次序的排列。
逆序向量: 依據元素的定義,是較小(右)分量為的逆序數。是在之中的之前,元素較大的數量。
左逆序計數: 依據位置的定義,是較大(右)分量為的逆序數。是在之中的之前,元素較大的數量。
右逆序計數,通常稱為Lehmer碼: 依據位置的定義,是較小(左)分量為i的逆序數。是之中的之後,元素較小的數量。
Rothe圖可以協助找出和。Rothe圖是以黑點來表示1的排列矩陣,每一個位置上若為逆序(通常以叉號表示)則在其右側與下方即有一點。是圖中第列排列逆序的加總,而是欄中排列逆序的加總。排列矩陣的倒反即是此矩陣的轉置,因此某一排列的即是它轉置的,反之亦然。
範例:四個元素的全部排列
下面可排序表顯示了四個元素的集合,它的逆序集會有不同位置的24種排列、逆序相關向量和逆序數(右欄是它的反向排列,用於以colex排序)。可以看出和的位數總是相同,而和與位逆序集有關。 最右側欄是排列左上右下對角線的總和,如三角形圖示,以及r是左下右上對角線的總和(配對在下降對角線中其右側都是2,3,4組成,而在上升對角線中的左側都是1,2,3組成)。 此表中的預設排序是反向colex次序,這與的colex次序相同。的字典序與的字典序相同。
三個元素的全部排列表 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
四個元素的全部排列表 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
排列的弱次序
n物品排列的集合其部份次序的結構,稱為排列的弱次序,而構成格。 以逆序集的子集關係繪出的哈斯圖,則構成了稱為permutohedron的骨架。 如果依位置將某一排列分配給每個逆序集,所得到的排序是permutohedron的次序,其中的邊對應於連續兩元素的交換。這是排列的弱排序。The identity is its minimum, and the permutation formed by reversing the identity is its maximum. 如果依元素將某一排列分配給每個逆序集,所得到的排序將是凱萊圖的次序,其中的邊對應於連續兩元素的交換。對稱組的凱萊圖與其permutohedron相似,但是每個排列由其反向替換。