# Towards optimal range medians

## 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(n log k + k log 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(log2n) query time using O(nlog n) space in the comparison model and O((log n / log log n)2) query time using O(log 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/ log log n) query time. Our approach naturally generalizes to higher-dimensional range median problems, where element positions and query ranges are multidimensionalit reduces a range median query to a logarithmic number of range counting queries. © 2010 Elsevier B.V. All rights reserved.