Talk:Steinhaus–Johnson–Trotter algorithm
![]() | Computing Stub‑class ![]() | ||||||||||||
|
Does anyone have a reference for the origins of this algorithm? Resistor 18:35, 28 January 2006 (UTC)
Why does Wikipedia list this algorithm as "Steinhaus-", when all the references to the article use the shorter name and either omit Steinhaus altogether or list the longer form as the variant? 87.194.117.80 (talk) 23:04, 20 January 2010 (UTC)
- Is this the method of plain changes? — Preceding unsigned comment added by 82.139.87.39 (talk) 06:14, 2 October 2011 (UTC)
- Yes, as the article now says in the new history section. —David Eppstein (talk) 06:29, 2 October 2011 (UTC)
The image associated with the page goes awry at permutation number 14 stating (3,4,3,2). Whoever made the image did a good job but ideally this mistake would be fixed. Before anyone says sofixit...no time. Sorry. 11:35, 13th February 2012 (GMT)
- Ok, fixed. Thanks for letting me know. —David Eppstein (talk) 16:11, 13 February 2012 (UTC)
Gray code for the factorial number system
The algorithm defines a Hamiltonian path in a Cayley graph of the symmetric group. The inverse permutations define a path in the permutohedron: | |
![]() |
![]() |
![]() |
![]() |
Permutations with green or orange background are odd. The smaller numbers below the permutations are the inversion vectors. Red marks indicate swapped elements. Compare list in natural order. |
At the moment the article contains the following sentence:
- Consecutive permutations in the sequence generated by the Steinhaus–Johnson–Trotter algorithm have numbers of inversions that differ by one, forming a Gray code for the factorial number system.
Something is a Gray code because the digit sums of consecutive tuples differ by one?! I don't believe that Dijkstra (1976) and Knuth (2004) claimed that.
In the tables I have included it can be seen that only for the inverse permutations (the path in the permutohedron, right table) the inversion vectors form a Gray code, i.e. always one digit is changing by one.
In the sequence generated by the algorithm (the path in the Cayley graph, left table) we have e.g. permutation 12 followed by permutation 2, i.e. inversion vector (0,0,0,2) followed by (0,0,1,0). I don't believe that fits any definition of Gray code.
By the way: In the sequence of inverse permutations (right table) the swapped positions correspond to the changing element in the inversion sets (better seen in the magnification). Maybe this could be mentioned in the article. Lipedia (talk) 16:19, 1 June 2012 (UTC)