首页 > 代码库 > 排列,逆序

排列,逆序

1,2,3...,n这n个数字组成的一个有序数组称为一个n级(阶)排列,共有A(n,n)=n!个不同的排列。
在一个n阶排列中如果较大的数排在较小的数的前面,,则称这两个数构成一个逆序.一个排列中的所有
逆序的总和叫做这个排列的逆序数。逆序数为奇数的排列叫做奇排列,逆序数为偶数的排列叫做偶排列
特别的,自然排列是逆序数为0的排列,算做是偶排列。

把一个排列中的某两个数位置对换,而其余的数位置不变,就得到一个排列,这样的一个变换叫做对换
定理:对换改变排列的奇偶性
证:
1、当对换的两个数在排列中是相邻时,排列...ab...---->...ba...,这里...表示那些位置不变的数,显然
ab对换后,它们的逆序数不变,当 a<b时,对换之后,它们构成逆序,逆序数+1,同理a > b时
对换之后,逆序数-1
2、设排列为a(i1)(i2)...(in)b , ab对换--->b(i1)(i2)...(in)a,
我们可以这么看,b做n+1次相邻对换---->ba(i1)(i2)...(in),
然后a做n次相邻对换---->b(i1)(i2)...(in)a,所以一共做了2n+1次相邻对换,而2n+1为奇数
由1,2可得,对换改变排列的奇偶性。

n个数构成的所有排列中,奇偶排列各占据一半

排列,逆序