English

Priority Range Trees

Computational Geometry 2010-09-21 v1

Abstract

We describe a data structure, called a priority range tree, which accommodates fast orthogonal range reporting queries on prioritized points. Let SS be a set of nn points in the plane, where each point pp in SS is assigned a weight w(p)w(p) that is polynomial in nn, and define the rank of pp to be r(p)=logw(p)r(p)=\lfloor \log w(p) \rfloor. Then the priority range tree can be used to report all points in a three- or four-sided query range RR with rank at least logw\lfloor \log w \rfloor in time O(logW/w+k)O(\log W/w + k), and report kk highest-rank points in RR in time O(loglogn+logW/w+k)O(\log\log n + \log W/w' + k), where W=pSw(p)W=\sum_{p\in S}{w(p)}, ww' is the smallest weight of any point reported, and kk is the output size. All times assume the standard RAM model of computation. If the query range of interest is three sided, then the priority range tree occupies O(n)O(n) space, otherwise O(nlogn)O(n\log n) space is used to answer four-sided queries. These queries are motivated by the Weber--Fechner Law, which states that humans perceive and interpret data on a logarithmic scale.

Keywords

Cite

@article{arxiv.1009.3527,
  title  = {Priority Range Trees},
  author = {Michael T. Goodrich and Darren Strash},
  journal= {arXiv preprint arXiv:1009.3527},
  year   = {2010}
}

Comments

12 pages, 3 figures. To appear at 21st International Symposium on Algorithms and Computation (ISAAC 2010)

R2 v1 2026-06-21T16:15:37.387Z