Combinatorics for computer science
Combinatorics for computer science
Universal cycles of k-subsets and k-permutations
Discrete Mathematics
Universal cycles for combinatorial structures
Discrete Mathematics
Some Hamilton Paths and a Minimal Change Algorithm
Journal of the ACM (JACM)
Permutation Generation Methods
ACM Computing Surveys (CSUR)
The Art of Computer Programming, Volume 4, Fascicle 2: Generating All Tuples and Permutations (Art of Computer Programming)
Loopless generation of multiset permutations using a constant number of variables by prefix shifts
SODA '09 Proceedings of the twentieth Annual ACM-SIAM Symposium on Discrete Algorithms
Faster generation of shorthand universal cycles for permutations
COCOON'10 Proceedings of the 16th annual international conference on Computing and combinatorics
Teaching the art of computer programming (TAOCP)
Proceedings of the 16th Western Canadian Conference on Computing Education
Hamilton cycles in restricted rotator graphs
IWOCA'11 Proceedings of the 22nd international conference on Combinatorial Algorithms
Hi-index | 0.00 |
We show how to construct an explicit Hamilton cycle in the directed Cayley graph &Cayrarr;({σn, σn−1}: Sn), where σk is the rotation (1 2 &cdots; k). The existence of such cycles was shown by Jackson [1996] but the proof only shows that a certain directed graph is Eulerian, and Knuth [2005] asks for an explicit construction. We show that a simple recursion describes our Hamilton cycle and that the cycle can be generated by an iterative algorithm that uses O(n) space. Moreover, the algorithm produces each successive edge of the cycle in constant time; such algorithms are said to be loopless. Finally, our Hamilton cycle can be used to construct an explicit universal cycle for the (n−1)-permutations of a n-set, or as the basis of an efficient algorithm for generating every n-permutation of an n-set within a circular array or linked list.