Optimal Partition Trees
We revisit one of the most fundamental classes of data structure problems in computational geometry: range searching. Matousek (Discrete Comput. Geom. 10:157-182, 1993) gave a partition tree method for d-dimensional simplex range searching achieving O(n) space and O(n(1-1/d)) query time. Although this method is generally believed to be optimal, it is complicated and requires O(n(1+epsilon)) preprocessing time for any fixed epsilon > 0. An earlier method by Matousek (Discrete Comput. Geom. 8:315-334, 1992) requires O(n log n) preprocessing time but O(n(1-1/d) log(O(1)) n) query time. We give a new method that achieves simultaneously O(n log n) preprocessing time, O(n) space, and O(n(1-1/d)) query time with high probability. Our method has several advantages: It is conceptually simpler than Matousek's O(n(1-1/d))-time method. Our partition trees satisfy many ideal properties (e. g., constant degree, optimal crossing number at almost all layers, and disjointness of the children's cells at each node). It leads to more efficient multilevel partition trees, which are needed in many data structuring applications (each level adds at most one logarithmic factor to the space and query bounds, better than in all previous methods). A similar improvement applies to a shallow version of partition trees, yielding O(n log n) time, O(n) space, and O(n(1-1/left perpendiculard/2right perpendicular)) query time for halfspace range emptiness in even dimensions d >= 4. Numerous consequences follow (e. g., improved results for computing spanning trees with low crossing number, ray shooting among line segments, intersection searching, exact nearest neighbor search, linear programming queries, finding extreme points, ...).
simplex range searching halfspace range searching geometric data structures