Partitioning space for range queries

F. Frances Yao, David P. Dobkin, Herbert Edelsbrunner, Michael S. Paterson

Research output: Contribution to journalArticlepeer-review

25 Scopus citations


It is shown that, given a set S of n points in R3, one can always find three planes that form an eight-partition of S, that is, a partition where at most n/8 points of S lie in each of the eight open regions. This theorem is used to define a data structure, called an octant tree, for representing any point set in R3. An octant tree for n points occupies O(n) space and can be constructed in polynomial time. With this data structure and its refinements, efficient solutions to various range query problems in two and three dimensions can be obtained, including (1) half-space queries: find all points of S that lie to one side of any given plane; (2) polyhedron queries: find all points that lie inside (outside) any given polyhedron; and (3) circle queries in R2: for a planar set S, find all points that lie inside (outside) any given circle. The retrieval time for all these queries is T(n) = O(nalpha + m), where α = 0.8988 (or 0.8471 in case (3)), and m is the size of the output. This performance is the best currently known for linear-space data structures that can be deterministically constructed in polynomial time.

Original languageEnglish (US)
Pages (from-to)371-384
Number of pages14
JournalSIAM Journal on Computing
Issue number2
StatePublished - 1989

All Science Journal Classification (ASJC) codes

  • General Computer Science
  • General Mathematics


Dive into the research topics of 'Partitioning space for range queries'. Together they form a unique fingerprint.

Cite this