【发布时间】:2016-05-08 01:21:18
【问题描述】:
给定在问题Counting the adjacent swaps required to convert one permutation into another 中定义的交换距离(即我们有一个字符串,并且从该字符串的排列到该字符串的交换距离是返回到原始字符串)。
我想要一种算法来找到给定字符串的最大可能交换距离。当然,我们可以枚举所有排列并检查每个排列的交换距离,但这非常低效。有更快的方法吗?
【问题讨论】:
-
这不等同于“冒泡排序的最坏情况是什么?”的问题
-
一个有趣的问题。我坦率地承认我可能是错的,但从表面上看,这似乎类似于寻找最佳排序序列的问题。 (即在 7 个比较中对 5 个项目进行排序)。对于小列表有已知的最佳序列,但对于较大的列表,我们依赖于相当有效的算法,这些算法可以生成好的但不能证明是最优的排序网络。我怀疑找到最高成本的订单也是如此。
标签: string algorithm permutation swap