Persistent predecessor search and orthogonal point location on the word RAM

Research output: Contribution to journalArticlepeer-review


We answer a basic data structuring question (e.g., raised by Dietz and Raman [1991]): Can van Emde Boas trees be made persistent, without changing their asymptotic query/update time? We present a (partially) persistent data structure that supports predecessor search in a set of integers in {1, . . . ,U} under an arbitrary sequence of n insertions and deletions, with O(log logU) expected query time and expected amortized update time, and O(n) space. The query bound is optimal in U for linear-space structures and improves previous near-O((log logU)2) methods. The same method solves a fundamental problem from computational geometry: point location in orthogonal planar subdivisions (where edges are vertical or horizontal). We obtain the first static data structure achieving O(log logU) worst-case query time and linear space. This result is again optimal in U for linearspace structures and improves the previous O((log logU 2) method by de Berg et al. [1995]. The same result also holds for higher-dimensional subdivisions that are orthogonal binary space partitions, and for certain nonorthogonal planar subdivisions such as triangulations without small angles. Many geometric applications follow, including improved query times for orthogonal range reporting for dimensions ≥ 3 on the RAM. Our key technique is an interesting new van-Emde-Boas-style recursion that alternates between two strategies, both quite simple.

Original languageEnglish (US)
Article number22
JournalACM Transactions on Algorithms
Issue number3
StatePublished - Jun 2013
Externally publishedYes


  • Computational geometry
  • Persistent data structures
  • Point location
  • Word-RAM algorithms

ASJC Scopus subject areas

  • Mathematics (miscellaneous)


Dive into the research topics of 'Persistent predecessor search and orthogonal point location on the word RAM'. Together they form a unique fingerprint.

Cite this