Johnson-Trotter Permutation

时间:2015-10-14 00:42:09

标签: permutation

我正在尝试编写一个程序,该程序可以使用具有不同数量元素的Johnson-Trotter方法生成排列。我仍然对如何准确地得到排列感到困惑。对于5个元素,我只能做到这一点,然后我就陷入了困境。我不是要求所有这些只是更多,所以我可以得到模式。

1 2 3 4 5

1 2 3 5 4

1 2 5 3 4

1 5 2 3 4

5 1 2 3 4

2 个答案:

答案 0 :(得分:0)

我找到了以下页面:

http://introcs.cs.princeton.edu/java/23recursion/JohnsonTrotter.java.html

尝试一步一步地运行这个Java程序,这肯定会有很大的帮助......

答案 1 :(得分:0)

我在卡片融合游戏中使用了Johnson-Trotter算法。上面提到的princeton.edu链接被广泛引用,但相当令人困惑。我见过的代码要么递归(yuck)要么效率低下。我把它重写为迭代器,它在我的游戏中运行得很好。在这里查看我的其他帖子:https://stackoverflow.com/a/28241384/4266886代码(非常短)。如果我能进一步帮助,请告诉我。