Selection and sorting in the “restore” model

Timothy M. Chan, J. Ian Munro, Venkatesh Raman

Research output: Contribution to journalArticlepeer-review


We consider the classical selection and sorting problems in a model where the initial permutation of the input has to be restored after completing the computation. Such algorithms are useful for designing space-efficient algorithms, when one encounters subproblems that have to be solved by subroutines. It is important that these subroutines leave the array in its original state after they finish so that the computation can be properly resumed. Algorithms in this model can also be relevant for saving communication time, in case the data is distributed among several machines and would need to be copied to further machines for execution of the subroutine. Although the requirement of the restoration is stringent compared to the classical versions of the problems, this model is more relaxed than a read-only memory where the input elements are not allowed to be moved within the input array. We first show that for a sequence of n integers, selection (finding the median or more generally the k-th smallest element for a given k) can be done in O(n) time using O(lg n) words1 of extra space in this model. In contrast, no linear-time selection algorithm is known that uses polylogarithmic space in the read-only memory model. For sorting n integers in this model, we first present an O(n lg n)-time algorithm using O(lg n) words of extra space that outputs (in a write only tape) the given sequence in sorted order while restoring the order of the original input in the input tape. When the universe size U is polynomial in n, we give a faster O(n)-time algorithm (analogous to radix sort) that uses O(nε ) words of extra space for an arbitrarily small constant ε > 0. More generally, we show how to match the time bound of any word-RAM integer sorting algorithms using O(nε ) words of extra space. In sharp contrast, there is an Ω(n2/S)-time lower bound for integer sorting using O(S) bits of space in the read-only memory model. Extension of our results to arbitrary input types beyond integers is not possible: for “indivisible” input elements, we can prove the same Ω(n2/S) lower bound for sorting in our model. We also describe space-efficient algorithms to count the number of inversions in a given sequence in this model. En route, we develop linear-time in-place algorithms to extract leading bits of the input array and to compress and decompress strings with low entropy; these techniques may be of independent interest.

Original languageEnglish (US)
Article number11
JournalACM Transactions on Algorithms
Issue number2
StatePublished - Jun 2018


  • In-place extraction
  • Read-only memory
  • Restore
  • Selection problem
  • Sorting integers

ASJC Scopus subject areas

  • Mathematics (miscellaneous)


Dive into the research topics of 'Selection and sorting in the “restore” model'. Together they form a unique fingerprint.

Cite this