Cache-Oblivious Iterated Predecessor Queries via Range Coalescing

In this paper we develop an optimal cache-oblivious data structure that solves the iterated predecessor problem. Given k static sorted lists L[subscript 1],L[subscript 2],...,L[subscript k] of average length n and a query value q, the iterated predecessor problem is to find the largest element in ea...

Full description

Bibliographic Details
Main Authors: Demaine, Erik D (Contributor), Gopal, Vineet (Contributor), Hasenplaugh, William Cleaburn (Contributor)
Other Authors: Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science (Contributor)
Format: Article
Language:English
Published: Springer Berlin / Heidelberg, 2017-07-25T19:21:39Z.
Subjects:
Online Access:Get fulltext
Description
Summary:In this paper we develop an optimal cache-oblivious data structure that solves the iterated predecessor problem. Given k static sorted lists L[subscript 1],L[subscript 2],...,L[subscript k] of average length n and a query value q, the iterated predecessor problem is to find the largest element in each list which is less than q. Our solution to this problem, called "range coalescing", requires O(log[subscript B+1]n+k/B) memory transfers for a query on a cache of block size B, which is information-theoretically optimal. The range-coalescing data structure consumes O(kn) space, and preprocessing requires only O(kn / B) memory transfers with high probability, given a tall cache of size M=Ω(B[superscript 2]).