具有任意初始状态的Steinhaus-Johnson-Trotter算法

时间:2017-10-24 20:16:32

标签: c algorithm permutation

如果初始数组中的值未订购,标准Steinhaus-Johnson-Trotter必须更改哪些内容?例如,我的初始数组是312,我想生成以下结果:

312
321
231
213
123
132

我可以引入一个额外的数组来定义每个数字的初始权重,例如: w [3] = 1,w [1] = 2,w [2] = 3,然后比较权重而不是算法中的值,但是可能没有这个 - 我想将算法应用于问题这个附加阵列哪里不方便?我正在寻找C的解决方案。

1 个答案:

答案 0 :(得分:0)

只需将Johnson-Trotter算法正常应用于索引数组即可。但是,不是显示索引,而是在包含任意顺序的任意元素的单独数组中显示每个索引处的项目。