排列排序最小交换次数

一个排列 {an},每次可以交换任意两个数,求将其排序所需的最小交换次数 .

{a} 排序后的序列为 {a},令 ai{a} 中的位置为 i,则连边 ii .

则答案为

G({a})=nr

其中 r 为构造出的图的连通块个数


首先我们构造出的东西肯定就是一个置换,可以拆成若干个置换环 .

Fn(r) 表示长度为 n 的有 r 个置换环的排列交换最小次数 .

Lemma 1

对于大小不小于 2 的置换环,将任意两个不同节点进行交换后则成为两个置换环 .

Lemma 1.5
对于两个置换环,在每个置换环中各取一个节点,将两个节点进行交换后, 两个置换环合并为一个置换环 .

Lemma 1Lemma 1.5 是显而易见的 .

Lemma 2

对于有 n 个节点的置换环,其交换次数为 n1(即 Fn(1)=n1) .

看起来非常显然,但实际上需要进一步论证 .

考虑数学归纳法 .

  • n=1 时命题显然成立 .

  • 假设当 nN 时命题全部成立(N2),则只需证 n=N+1 时命题仍成立 .

    首先任选交换环中的两个不同的节点交换,由 Lemma 1 知,分裂成两个置换环,设他们的大小分别是 s1,s2 (s1+s2=N+1),由归纳假设知 Fs1(1)=s11Fs2(1)=s21,根据 Lemma 2 把他们合并起来则有 FN+1(1)=Fs1(1)+Fs2(1)=s1+s22=k .

    于是当 n=N+1 时命题也成立 .

从而,Lemma 2 获证 .


回到原命题,欲证 Fn(r)=nr .

仍然考虑数学归纳法 .

  • 首先当 n=r 时命题显然成立 .

  • 假设当 rR1Rn)时命题都成立,则只需证 r=R1 时命题仍成立 .

    (存在性)首先根据 Lemma 2,如果只交换置换环,那么就需要 nr+1 次操作,接下来证明此为最小交换次数 .

    (极小性)假设最小的操作序列使得交换次数小于 nR+1,则该交换序列必然包含交换环间的交换操作,由 Lemma 1Lemma 1.5 可知,一次环间操作只会将置换环数量改变 1(加 1 或减 1),因为最终状态有 n 个置换环(根据归纳假设,Rn),所以该操作序列必然存在一个已交换步数 k1 使得置换环的个数等于 R .

    Fn(R1)=Fn(R)+k=nR+knR+1,矛盾!故不存在一个操作序列使得交换次数小于 nR+1 .

从而 Fn(r)=nr,证毕 .

posted @   yspm  阅读(973)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
😅​
点击右上角即可分享
微信分享提示