若能把任意一对相邻位置(共享边)完成交换,我们就能用相邻交换生成任意排列,从而把所有元素整体按降序放入矩阵(行优先)即为最优。
对一对相邻格子 (x1,y1)、(x2,y2),若存在某个“缓冲格” t,使得 t 与两者都不相邻,则用三步实现相邻交换:
(x1↔t), (x2↔t),
小红给定一个大小为 n×m 的矩阵 A ,从上往下为第 i 行,从左往右为第 j 列,其所在元素为 Aij 。
每次操作可以选择两个不相邻的元素交换,形式化的,即选定两个坐标 (i1,j1),(i2,j2) 满足 ∣i1−i2∣+∣j1−j2∣=1 ,然后交换 Ai1,j1和 Ai2,j2 的元素值。