Parallel and sequential in-place permuting and perfect shuffling using involutions
Qingxuan Yang, John Ellis, Khalegh Mamakani, Frank Ruskey

TL;DR
This paper demonstrates that any permutation can be decomposed into two involutions, enabling in-place, parallel permutation of array elements efficiently, with specific methods for perfect shuffles.
Contribution
It introduces novel methods to compute involutions for permutations, especially perfect shuffles, with optimized time and space complexities.
Findings
Any permutation can be expressed as a product of two involutions.
In-place parallel permutation can be achieved in constant time.
Efficient algorithms for perfect shuffles with different constraints.
Abstract
We show that any permutation of can be written as the product of two involutions. As a consequence, any permutation of the elements of an array can be performed in-place in parallel in time O(1). In the case where the permutation is the -way perfect shuffle we develop two methods for efficiently computing such a pair of involutions. The first method works whenever is a power of ; in this case the time is O(N) and space . The second method applies to the general case where is a multiple of ; here the time is and the space is . If the space usage of the first method can be reduced to on a machine that has a SADD (population count) instruction.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAlgorithms and Data Compression · DNA and Biological Computing · Cellular Automata and Applications
