Parallel and sequential in-place permuting and perfect shuffling using involutions
Data Structures and Algorithms
2015-03-20 v2
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.
Cite
@article{arxiv.1204.1958,
title = {Parallel and sequential in-place permuting and perfect shuffling using involutions},
author = {Qingxuan Yang and John Ellis and Khalegh Mamakani and Frank Ruskey},
journal= {arXiv preprint arXiv:1204.1958},
year = {2015}
}