对于排列,逆序对与位移距离的关系

在洛谷乱逛,发现一个提问:一个排列中,\(|p_i - i|\) 的和一定大于等于逆序对数量?(答案是 Yes)


Diaconis P, Graham R L. Spearman's footrule as a measure of disarray[J]. Journal of the Royal Statistical Society Series B: Statistical Methodology, 1977, 39(2): 262-268.

我是乱读的。开篇先介绍了 4 种距离函数,用于衡量两个长度为 \(n\) 的排列 \(a,b\) 之间的差异。

发现了个人比较感兴趣的结论。

\(T(a,b)\) 表示每次可以任意交换 \(a\) 中两个元素,使其变成 \(b\) 的最少次数。

\(I(a,b)\) 表示相邻项交换(冒泡排序)需要的最少次数,即逆序对。

\(D(a,b)\) 表示 \(\sum |a_i - b_i|\),即位移距离。

\(S(a,b)\) 表示 \(\sum {(a_i - b_i)}^2\)

这篇论文回答了上面的问题,使用了前三个记号。

\[I + T \le D \le 2I \]


不等式右侧

先说明 \(D \le 2I\),我们考虑 \(I\) 的操作过程,每次交换 \(a_i\)\(a_{i+1}\)

这里我们要先说明,由于排序恰好操作 \(I\) 次,那么每步都会消除恰好 \(1\) 个逆序对。
为了后文方便,我们把操作序列反过来,每步增加 \(1\) 个逆序对,即假设 \(a_i < a_{i+1}\)

下面我们针对 \(b=\{1,2,3...n\}\) 证明,使用的记号是 \(i\),这样写起来简洁。
对于更一般的情况,可以把 \(i\) 替换为 \(b_i\),因为记号会全部相消掉,只留下数值,所以不重要。


我们在每次操作时,计算对 \(D\) 的增量贡献 \(\Delta\)

\(\Delta = |i - a_{i+1}| + |i + 1 - a_{i}| - |i - a_i| - |i + 1 - a_{i+1}|\)

接下来通过 3 类讨论,把绝对值拆掉:

  1. \(a_{i+1} \le i\) 时,\(\Delta = 0\)
  2. \(a_{i} \ge i + 1\) 时,\(\Delta = 0\)
  3. \(a_{i+1} \ge i + 1\)\(a_{i} \le i\) 时,\(\Delta = 2\)

这里的范围巧妙,因为讨论最后第三类时,在翻转前两类的符号时,不等式一侧恰好可以 \(\pm 1\)

也就是说,每次逆序对交换时,至多会对 \(D\) 产生 \(2\) 的贡献,故 \(D \le 2I\)

Knuth 在 1973 年还指出,想要构造 \(D =2I\) 取等的情况,当且仅当 不存在 \(i < j < k\) 满足 \(a_i > a_j > a_k\)

且这类排列的数量恰好是卡特兰数 \({1 \over {2n+1}} \binom{2n+1}{n}\)

不等式左侧

后面有个反证法的详细步骤略去了,等打完 sprb 全成就再来补(bushi)


左侧边界 \(I + T \le D\) 的证明更为复杂,最后还需要使用 Cayley 定理。

说明顺序如下,先解决 \(I \le D\),随后进一步说明 \(D - I \ge T\)

下面我们用论文里的记号,说实话可以换成 \(i\)\(j\) 之类的。

Part1

记所有逆序对形如 \((k,l)\),即 \(k \le l\)\(\pi(k) > \pi(l)\)

我们先改写位移距离 \(D = \sum |i - \pi(i)|\),拆掉绝对值:

\[D = \sum_{\pi(i) \ge i} (\pi(i) - i) + \sum_{\pi(i) \le i} (i - \pi(i)) \]

同时逆序对可以分为两类,每个逆序对 至少 属于其中一种。

  • Type I:\(\pi(k) \ge l \gt k\)
  • Type II: \(\pi(k) \le l\)

这个正确性比较显然,是按照同 \(l\) 的大小关系分类。

对照上面的求和式,即 \(D\) 大于等于 Type I 加 Type II 的数量(\(D \ge I\)

也可观察到

  • 固定 \(k\),产生的 Type I 数量,不会超过它向右的位移量 \(\pi(k) - k\)
  • 固定 \(l\),产生的 Type II 数量,不会超过它向左的位移量 \(l - \pi(l)\)

Part2

我们考虑一下,前面的大于等于号,是哪里多算了。

  1. 存在某个位置 \(y\) 满足 \(k < y \le \pi(k) < \pi(y)\)。此时 \(y\) 消耗了 \(k\) 的右移距离(被算在 \(\pi(k) - k\) 里了),但是 \(\pi(k) < \pi(y)\) 说明它们是正序的,并没有构成逆序对。
  2. 同理,存在左移方向的多算,即满足 \(\pi(x) < \pi(l) \le x < l\) 的情况。
  3. 有些逆序对既是 Type I 又是 Type II(即满足 \(x < \pi(x)\)\(\pi^2(x) < \pi(x)\))。它在计算向右和向左位移时被加了两次,但在总逆序对 \(I\) 中只算了一个,这也产生 \(1\) 的贡献。

这三者会使得 \(D-I\) 的值恰好变大 \(1\),我们形式化它们,可以写出五个情况:

  1. \(x < \pi(x)\)\(\pi^2(x) < \pi(x)\)。(\(\pi^2(k)\) 表示对 \(k\) 连续做两次位置映射,即 \(\pi(\pi(k))\))。
  2. \(k < \pi(k) < \pi^2(k)\),且 \(y = \pi(l)\)
  3. \(k < y < \pi(k) < \pi(y)\)
  4. \(\pi^2(l) < \pi(l) < l\),且 \(x = \pi(l)\)
  5. \(\pi(x) < \pi(l) < x < l\)

文章里称呼它们为 Critical configurations,每个会多算 \(1\) 的数值。

接下来非常神,我们引入排列的循环(就是有多少个环),假设排列里出现了 \(C\) 个环。
对于一个长度为 \(m\) 的环,文章用反证法,说明证明了它至少包含 \(m-1\) 个 Critical configurations。

[ 略 ]

于是此时我们得知 \(D-I \ge \sum (m_i - 1) = (\sum m_i) - C = n - C\)

最后一步是免费的午餐,直接代入 Cayley 定理 \(T = n - C\),成功证明了 \(D-I \ge T\)

综上,也就是说完成了 \(I + T \le D \le 2I\) 的证明。

posted @ 2026-07-21 11:52  Aurora5090  阅读(5)  评论(0)    收藏  举报

再次右键以切换宽度