如果未对初始数组中的值进行排序,必须在标准Steinhaus–Johnson–Trotter中进行哪些更改?例如,我的初始数组是312,我想生成以下结果:
312
321
231
213
123
132
我可以引入一个附加数组,该数组定义每个数字的初始权重,例如w [3] = 1,w [1] = 2和w [2] = 3,然后比较权重而不是算法中的值,但是如果没有这个,是否有可能-我想将算法应用于问题这个额外的数组在哪里不方便?我正在C中寻找解决方案。
如果未对初始数组中的值进行排序,必须在标准Steinhaus–Johnson–Trotter中进行哪些更改?例如,我的初始数组是312,我想生成以下结果:312 321 ...
仅将Johnson-Trotter算法应用于正常的索引数组即可。但是,不是显示索引,而是在包含任意顺序的任意元素的单独数组中显示每个索引处的项目。