Brodal, Gerth Stølting^{4}; Gfeller, Beat^{2}; Jørgensen, Allan Grønlund^{4}; Sanders, Peter^{3}

Affiliations:

^{1} Department of Computer Science, Science and Technology, Aarhus University^{2} IBM Research, Zurich^{3} Universität Karlsruhe^{4} Department of Computer Science, Science and Technology, Aarhus University

DOI:

10.1016/j.tcs.2010.05.003

Abstract:

We consider the following problem: Given an unsorted array of n elements, and a sequence of intervals in the array, compute the median in each of the subarrays defined by the intervals. We describe a simple algorithm which needs O(nlog k + klog n) time to answer k such median queries. This improves previous algorithms by a logarithmic factor and matches a comparison lower bound for k=O(n). The space complexity of our simple algorithm is O(nlog n) in the pointer-machine model, and O(n) in the RAM model. In the latter model, a more involved O(n) space data structure can be constructed in O(nlog n) time where the time per query is reduced to O(log n / log log n). We also give efficient dynamic variants of both data structures, achieving O(log2 n) query time using O(nlog n) space in the comparison model and O((log n/loglog n)2) query time using O(nlog n/log log n) space in the RAM model, and show that in the cell-probe model, any data structure which supports updates in O(logO(1)n) time must have Ω(log n/loglog n) query time. Our approach naturally generalizes to higher-dimensional range median problems, where element positions and query ranges are multidimensional - it reduces a range median query to a logarithmic number of range counting queries.

Type:

Journal article

Language:

English

Published in:

Theoretical Computer Science, 2011, Vol 412, Issue 24, p. 2588-2601

Keywords:

Medians; Range queries; Algorithms; Data structures