Abstract

We consider the I/O-efficient rectangular segment search problem in 2D. The problem involves storing a given set ${\cal S}$ of $N$ line segments in a data structure such that an axis aligned rectangular range query ${\cal R}$ can be performed efficiently; i.e., report all line segments in ${\cal S}$ which intersect ${\cal R}$. We give a data structure requiring space $O(N(N/B)^2)$ disk blocks that can answer a range query ${\cal R}$ using $O(log_B N + K/B)$ I/Os, where $B$ is the number of line segments transferred in one I/O, and $K$ is the number of line segments intersecting ${\cal R}$. Search complexity of $O(log_B (N/B) + K/B)$ I/Os can be achieved with reduced storage if the set ${\cal S}$ contains only non-intersecting line segments, orif set ${\cal S}$ contains only horizontal and vertical line segments. In the former case the space complexity is $O((N/B)^2)$ disk blocks and in the latter case the space complexity is $O(N \frac{\log N}{\log\log_B N})$.We also consider the problem of finding all the line segments which are entirely within the rectangle ${\cal R}$ if the set ${\cal S}$ contains only vertical and horizontal line segments. For this problem, an optimal data structure is presented with size $O(N \frac{\log N}{\log\log_B N})$ disk blocks that requires $O(log_B (N/B) + K/B)$ I/Os to answer the query.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call