有一个全排列为:
a 1 , a 2 , . . . , a i , . . . , a j , . . . , a n a_1,a_2,...,a_i,...,a_j,...,a_n a1,a2,...,ai,...,aj,...,an
假设要交换的两个数是 a i a_i ai 和 a j a_j aj:
情况一: a i a_i ai 和 a j a_j aj 相邻
显然,交换 a i a_i ai 和 a j a_j aj 会使得逆序数+1(当 a i < a j a_i < a_j ai<aj) 或 -1 ( 当 a i > a j a_i > a_j ai>aj)。因为这两个数和其它数的相对位置都不会发生改变。
情况二: a i a_i ai 和 a j a_j aj 中间有其它的数
假设 a i a_i ai 和 a j a_j aj 之间有 k 个数。其中比 a i a_i ai 大的有 A 个,比 a j a_j aj 小的有 B 个。
我们把交换 a i a_i ai 和 a j a_j aj 看作两步:
第一步:将 a i a_i ai 移动到原来 a j a_j aj 所在的位置。
比 a i a_i ai 大的数有 A 个,则比 a i a_i ai 小的数就有 k - A 个,移动 a i a_i ai 会导致 k-A 个逆序减少,但是会新增加 A 个逆序,即这一步总的逆序数变化量为 A - ( k - A) = 2 A - k。
第二步:将 a j a_j aj 移动到原来 a i a_i ai 所在的位置。
比 a j a_j aj 小的数有 B 个,则比 a j a_j aj 大的数就有 k- B 个,移动 a j a_j aj 会导致 k-B 个逆序减少,但是会新增加 B 个逆序,即这一步总的逆序数变化量为 B - (k - B) = 2 B - k。
综合以上两步,交换 a i a_i ai 和 a j a_j aj 所导致的逆序数的变化量为 2(A+B) - 2k,这肯定是个偶数。
但是,还有一个逆序数变化,那就是 a i a_i ai 和 a j a_j aj 本身交换导致的,它要么是+1要么是-1。
结论
所以,全排列中任意两个数交换位置,该全排列的逆序数的奇偶性将发生改变。