Space-efficient data structure for next/previous larger/smaller value queries
Given an array of size n from a total order, we consider the problem of constructing a data structure that supports various queries (range minimum/maximum queries with their variants and next/previous larger/smaller queries) efficiently. In the encoding model (i.e., the queries can be answered without the input array), we propose a (3.701n + o(n))-bit data structure, which supports all these queries in O(log^(ℓ)n) time, for any positive integer ℓ (here, log^(1) n = log n, and for ℓ > 1, log^(ℓ) n = log (log^(ℓ-1) n)). The space of our data structure matches the current best upper bound of Tsur (Inf. Process. Lett., 2019), which does not support the queries efficiently. Also, we show that at least 3.16n-Θ(log n) bits are necessary for answering all the queries. Our result is obtained by generalizing Gawrychowski and Nicholson's (3n - Θ(log n))-bit lower bound (ICALP 15) for answering range minimum and maximum queries on a permutation of size n.
READ FULL TEXT