Author :
Fich, Faith E. ; Munro, J.Ian ; Poblete, Patricio V.
Author_Institution :
Dept. of Comput. Sci., Toronto Univ., Ont., Canada
Abstract :
The fundamental problem of permuting the elements of an array according to some given permutation is addressed. The goal is to perform the permutation quickly using only a polylogarithmic number of bits of extra storage. The main result is an O(n log n)-time, O(log2n)-space worst case method. A simpler method is presented for the case in which both the permutation and its inverse can be computed at (amortized) unit cost. This algorithm requires O(n log n) time and O(log n) bits in the worst case. These results are extended to the situation in which a power of the permutation is to be applied. A linear time, O(log n)-bit 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
Keywords :
programming theory; array elements; linear time; permutation; permuting; polylogarithmic number of bits; Binary search trees; Computer science; Costs; Councils; Organizing; Sorting; Tree data structures;
Conference_Titel :
Foundations of Computer Science, 1990. Proceedings., 31st Annual Symposium on
Conference_Location :
St. Louis, MO
Print_ISBN :
0-8186-2082-X
DOI :
10.1109/FSCS.1990.89556