排序列表的最小换位数


15

在尝试设计自己的排序算法时,我正在寻找可以与之进行比较的最佳基准。对于元素的未排序的顺序一个和排序顺序,什么是计算换位的最优数量得到一种有效的方式

换位定义为切换列表中2个元素的位置,例如

1 2 4 3

有一个变调(变调4和3)

1 2 3 4

就像是

1 7 2 5 9 6

需要4个换位(7,2),(7,6),(6,5),(9,7)

更新(9/7/11):问题更改为使用“换位”而不是“掉期”来指代不相邻的交易所。


如果您可以交换邻居该怎么办?如何确定最小交换次数?

Answers:


23

如果你只处理的排列元素,那么你就需要确切ñ - Ç π 掉期,其中Ç π 是在周期数不相交的周期分解π。因为这个距离是双向不变,转化πσ(或,或相反地)需要ñ - Ç σ - 1π 这样移动。ñnc(πCπππσ一种ñ-Cσ-1个π


尽管很久以前对此进行了投票,但今天它还是点击了。就像魔方,对:D?
sova 2012年

11

交换距离也可以等距地嵌入到欧几里得空间中。对于每个字符串s,构造一个矩阵,如果ij之前出现,则M i j = 1,否则为零。然后弗罗贝尼乌斯距离中号小号- 中号小号'2是交换距离d 小号š '。(摘自Graham Cormode的幻灯片)。不像安东尼的回答那么优雅,但是很容易计算。中号s中号一世Ĵ=1个一世Ĵ中号s-中号s2dss

更新:请参阅Oleksandr的评论


在我看来,在格雷厄姆的陈述中,它们表示频谱范数(),而不是弗罗贝尼乌斯范数(A F)。一种2一种F
Oleksandr Bondarenko

尽管如果您只想计算差异,那么frobenius范数的平方应该正确吗?
Suresh Venkat

这当然是0-1矩阵的汉明距离
Suresh Venkat

2

Oleksandr:我想您将“交换”解释为“交换两个相邻元素”?
Anthony Labarre 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.