浅谈逆序数

来源:互联网 发布:网络推编辑 编辑:程序博客网 时间:2024/05/01 23:35

定义:在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。逆序数为偶数的排列称为偶排列;逆序数为奇数的排列称为奇排列

定义:在一个排列中,将任意两个元素对调,得到一个新排列,排列的这个变换叫对换;将相邻两个元素对调,叫相邻对换.

定理:每一个对换,都要改变排列的逆序数的奇偶性.

求解逆序数的方法:

1、分治法:待补充

2、树状数组:待补充

应用1、最少交换次数:给定一个序列,每次交换相邻的两个元素,最少需要交换多少次,使序列有序?答案:逆序数的个数(如冒泡排序的交换次数)

如果可以交换不相邻的元素,最少需要交换多少次呢? 答案:数字的总个数减去循环节的个数点击打开链接

应用2、14-15智力玩具(原理:根据排列的奇偶性)

任何一个m×n方格的智力游戏,假定右下最后一格是空格,其余格子里的数字从左至右、从上至下组成由数字1,2,3,…,mn-1的一个排列,则经过一系列基本滑动后,当右下角仍是空格时,其排列的奇偶性均不会改变.因此,若初始排列是奇排列,则通过以上两种基本滑动是不可能得到正确的排列的.那么,若初始排列是任一偶排列是可以得到的

0 0
原创粉丝点击