On the problem of sorting burnt pancakes
Discrete Applied Mathematics
A new operation on sequences: the boustrophedon transform
Journal of Combinatorial Theory Series A
Generating multiset permutations in constant time
Journal of Algorithms
Faster and simpler algorithm for sorting signed permutations by reversals
SODA '97 Proceedings of the eighth annual ACM-SIAM symposium on Discrete algorithms
Journal of the ACM (JACM)
Genome Rearrangements and Sorting by Reversals
SIAM Journal on Computing
Coverage of Known Spaces: The Boustrophedon Cellular Decomposition
Autonomous Robots
The Art of Computer Programming, Volume 4, Fascicle 3: Generating All Combinations and Partitions
The Art of Computer Programming, Volume 4, Fascicle 3: Generating All Combinations and Partitions
The Art of Computer Programming, Volume 4, Fascicle 2: Generating All Tuples and Permutations (Art of Computer Programming)
The Art of Computer Programming, Volume 4, Fascicle 4: Generating All Trees--History of Combinatorial Generation (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
An (18/11)n upper bound for sorting by prefix reversals
Theoretical Computer Science
Linear-time ranking of permutations
ESA'07 Proceedings of the 15th annual European conference on Algorithms
Combinatorics of Genome Rearrangements
Combinatorics of Genome Rearrangements
Cool-lex order and k-ary Catalan structures
Journal of Discrete Algorithms
Hi-index | 0.00 |
Conventional wisdom suggests that O(k)-time is required to reverse a substring of length k. To reduce this time complexity, a simple and unorthodox data structure is introduced. A boustrophedon linked list is a doubly-linked list, except that each node does not differentiate between its backward and forward pointers. This lack of information allows substrings of any length to be reversed in O(1)-time. This advantage is used to efficiently unsort permutations using prefix-reversals. More specifically, this paper presents two algorithms that visit each successive permutations of 〈n〉 = {1, 2,..., n} in worst-case O(1)-time (i.e. loopless). The first visits the permutations using a prefix-reversal Gray code due to Zaks [22], while the second visits the permutations in co-lexicographic order. As an added challenge, both algorithms are nonprobing since they rearrange the data structure without querying its values. To accomplish this feat, the algorithms are based on two integer sequences: A055881 in the OEIS [17] and an unnamed sequence.