Structured permuting in place on parallel disk systems
Proceedings of the fourth workshop on I/O in parallel and distributed systems: part of the federated computing research conference
A heuristic to accelerate in-situ permutation algorithms
Information Processing Letters
Beyond External Computing: Analysis of the Cycle Structure of Permutations
Euro-Par '01 Proceedings of the 7th International Euro-Par Conference Manchester on Parallel Processing
Permuting in place: analysis of two stopping rules
Journal of Algorithms
Cost distribution of the Chang-Roberts leader election algorithm and related problems
Theoretical Computer Science
In-place transposition of rectangular matrices
PARA'06 Proceedings of the 8th international conference on Applied parallel computing: state of the art in scientific computing
Space-efficient construction of Lempel-Ziv compressed text indexes
Information and Computation
Space efficient wavelet tree construction
SPIRE'11 Proceedings of the 18th international conference on String processing and information retrieval
Parallel and Cache-Efficient In-Place Matrix Storage Format Conversion
ACM Transactions on Mathematical Software (TOMS)
On the compression of search trees
Information Processing and Management: an International Journal
Hi-index | 0.00 |
This paper addresses the fundamental problem of permuting the elements of an array of $n$ elements according to some given permutation. Our goal is to perform the permutation quickly using only a polylogarithmic number of bits of extra storage. The main result is an algorithm whose worst case running time is $O(n \log n)$ and that uses $O(\log n )$ additional $\log n$-bit words of memory. A simpler method is presented for the case in which both the permutation and its inverse can be computed at (amortised) unit cost. This algorithm requires $O(n \log n)$ time and $O(1)$ words in the worst case. These results are extended to the situation in which we are to apply a power of the permutation. A linear time, $O(1)$ word method is presented for the special case in which the data values are all distinct and are either initially in sorted order or will be when permuted.