## Cache-oblivious data structures for orthogonal range searching (2003)

Venue: | IN PROC. ACM SYMPOSIUM ON COMPUTATIONAL GEOMETRY |

Citations: | 22 - 6 self |

### BibTeX

@INPROCEEDINGS{Agarwal03cache-obliviousdata,

author = {Pankaj K. Agarwal and Lars Arge and Andrew Danner and Bryan Holland-Minkley},

title = {Cache-oblivious data structures for orthogonal range searching},

booktitle = {IN PROC. ACM SYMPOSIUM ON COMPUTATIONAL GEOMETRY},

year = {2003},

pages = {237--245},

publisher = {American Mathematical Society}

}

### Years of Citing Articles

### OpenURL

### Abstract

We develop cache-oblivious data structures for orthogonal range searching, the problem of finding all T points in a set of N points in Rd lying in a query hyper-rectangle. Cacheoblivious data structures are designed to be efficient in arbitrary memory hierarchies. We describe a dynamic linear-size data structure that answers d-dimensional queries in O((N/B)1-1/d + T/B) memory transfers, where B is the block size of any two levels of a multilevel memory hierarchy. A point can be inserted into or deleted from this data structure in O(log2B N) memory transfers. We also develop a static structure for the twodimensional case that answers queries in O(logB N + T /B) memory transfers using O(N log22 N) space. The analysis of the latter structure requires that B = 22 c for some nonnegative integer constant c.

### Citations

8557 |
Introduction to Algorithms
- Cormen, Leiserson, et al.
- 2001
(Show Context)
Citation Context ...ternal memory algorithm) is measured in terms of the number of memory transfers it performs, as well as the amount of external memory it uses. In the cache-oblivious model, introduced by Frigo et al. =-=[22]-=-, algorithms are developed and analyzed in the two-level I/Omodel, but they cannot make explicit use of M and B. It is assumed that M > B 2 (the tall cache assumption) and that when an algorithm acces... |

1124 |
Multidimensional binary search trees used for associative searching
- Bentley
- 1975
(Show Context)
Citation Context ...n-negative integer c. Our structure generalizes to arbitrarysN though the notation and analysis become slightly more cumbersome. Details will appear in the full paper. The kd-tree proposed by Bentley =-=[14]-=- is a binary tree of height O(log 2 N) with the N points stored in the leaves of the tree. The internal nodes represent a recursive decomposition of the plane by means of axis-orthogonal lines that pa... |

557 | The Ubiquitous B-Tree
- Comer
- 1979
(Show Context)
Citation Context ...og N+T log # (2N/T )) time using linear space and in O(log N + T ) time using O(N log # N) space, respectively [18, 19]. Refer to a recent survey for further results [3]. In the I/O-model, the B-tree =-=[21, 9]-=- supports one-dimensional range queries in O(log B N + T/B) memory transfers using linear space. In two dimensions, one has to use #(N log B N log B log B N ) space to obtain an O(log B N +T/B) query ... |

539 |
The input/output complexity of sorting and related problems
- Aggarwal, Vitter
- 1988
(Show Context)
Citation Context ...of finding all points T in a set of N points in R d lying in a query hyperrectangle. 1.1 Model of Computation In the two-level I/O-model (or external-memory model ), introduced by Aggarwal and Vitter =-=[4]-=-, the memory hierarchy consists of an internal memory (or cache) of size M and an arbitrarily large external memory partitioned into blocks of size B. An I/O, or memory transfer, transfers one block b... |

379 |
The k-d-b-tree: a search structure for large multidimensional dynamic indexes
- Robinson
- 1981
(Show Context)
Citation Context ...og B log B N ) memory transfers [8]. If only linear space is used, O( p N/B + T/B) is a lower bound on the number of transfers needed to answer a query, and these bounds are obtained by the kd-B tree =-=[25]-=-. The kd-B tree can be constructed in O(Sort(N)) = O( N B log M/B N B ) I/Os [1, 2], the number of I/Os needed to sort N elements, and using the logarithmic method [15] this leads to an O( log 2 N B l... |

320 | External Memory Algorithms and Data Structures: Dealing with Massive Data
- Vitter
- 1981
(Show Context)
Citation Context ... and using the logarithmic method [15] this leads to an O( log 2 N B log M/B N B ) = O(log 2 B N) update algorithm. Refer to recent surveys for further I/O-model and hierarchical memory model results =-=[6, 26]-=-. Frigo et al. [22] developed cache-oblivious algorithms for sorting, Fast Fourier Transform, and matrix multiplication. Subsequently, a number of other results have been obtained in the cache-oblivio... |

254 |
Organization and maintenance of large ordered indexes
- Bayer, McCreight
- 1972
(Show Context)
Citation Context ...og N+T log # (2N/T )) time using linear space and in O(log N + T ) time using O(N log # N) space, respectively [18, 19]. Refer to a recent survey for further results [3]. In the I/O-model, the B-tree =-=[21, 9]-=- supports one-dimensional range queries in O(log B N + T/B) memory transfers using linear space. In two dimensions, one has to use #(N log B N log B log B N ) space to obtain an O(log B N +T/B) query ... |

253 | Geometric range searching and its relatives
- Agarwal, Erickson
- 1998
(Show Context)
Citation Context ...n structures answer queries in O(log N+T log # (2N/T )) time using linear space and in O(log N + T ) time using O(N log # N) space, respectively [18, 19]. Refer to a recent survey for further results =-=[3]-=-. In the I/O-model, the B-tree [21, 9] supports one-dimensional range queries in O(log B N + T/B) memory transfers using linear space. In two dimensions, one has to use #(N log B N log B log B N ) spa... |

133 | Concurrent cache-oblivious B-trees
- Bender, Fineman, et al.
- 2005
(Show Context)
Citation Context ...t al. [22] developed cache-oblivious algorithms for sorting, Fast Fourier Transform, and matrix multiplication. Subsequently, a number of other results have been obtained in the cache-oblivious model =-=[7, 10, 11, 12, 13, 16, 17, 24]-=-, among them several cache-oblivious B-tree structure with O(log B N) search and update bounds [11, 12, 13, 17, 24]. Several of these structures can also support one-dimensional range queries in O(log... |

132 | A functional approach to data structures and its use in multidimensional searching
- Chazelle
- 1988
(Show Context)
Citation Context ... In the planar case, for example, some of the best known structures answer queries in O(log N+T log # (2N/T )) time using linear space and in O(log N + T ) time using O(N log # N) space, respectively =-=[18, 19]-=-. Refer to a recent survey for further results [3]. In the I/O-model, the B-tree [21, 9] supports one-dimensional range queries in O(log B N + T/B) memory transfers using linear space. In two dimensio... |

107 | Filtering search: A new approach to query-answering
- Chazelle
- 1986
(Show Context)
Citation Context ... In the planar case, for example, some of the best known structures answer queries in O(log N+T log # (2N/T )) time using linear space and in O(log N + T ) time using O(N log # N) space, respectively =-=[18, 19]-=-. Refer to a recent survey for further results [3]. In the I/O-model, the B-tree [21, 9] supports one-dimensional range queries in O(log B N + T/B) memory transfers using linear space. In two dimensio... |

80 |
Decomposable searching problems
- Bentley
- 1979
(Show Context)
Citation Context ...s are obtained by the kd-B tree [25]. The kd-B tree can be constructed in O(Sort(N)) = O( N B log M/B N B ) I/Os [1, 2], the number of I/Os needed to sort N elements, and using the logarithmic method =-=[15]-=- this leads to an O( log 2 N B log M/B N B ) = O(log 2 B N) update algorithm. Refer to recent surveys for further I/O-model and hierarchical memory model results [6, 26]. Frigo et al. [22] developed c... |

79 | External memory data structures
- Arge
- 2002
(Show Context)
Citation Context ... and using the logarithmic method [15] this leads to an O( log 2 N B log M/B N B ) = O(log 2 B N) update algorithm. Refer to recent surveys for further I/O-model and hierarchical memory model results =-=[6, 26]-=-. Frigo et al. [22] developed cache-oblivious algorithms for sorting, Fast Fourier Transform, and matrix multiplication. Subsequently, a number of other results have been obtained in the cache-oblivio... |

79 | On TwoDimensional Indexability and Optimal Range Search Indexing
- Arge, Samoladas, et al.
- 1999
(Show Context)
Citation Context ...rts one-dimensional range queries in O(log B N + T/B) memory transfers using linear space. In two dimensions, one has to use #(N log B N log B log B N ) space to obtain an O(log B N +T/B) query bound =-=[8, 20]-=-. The external range-tree structure obtains these bounds and supports updates in O( log 2 B N log B log B N ) memory transfers [8]. If only linear space is used, O( p N/B + T/B) is a lower bound on th... |

78 | Cache-oblivious algorithms
- Prokop
- 1999
(Show Context)
Citation Context ...hat l is in X i . In this case we can compute l by selecting the point with rank K/2 element among the points in R#X i in O( # N/B) memory transfers using the standard linear time selection algorithm =-=[22, 23]-=-. Otherwise, we continue and compute the number of points in R#X i+1 . We do so by first computing the number of points P d-1 k=c+1 g (i+1),k = #v (i +1, d-1)-#v(i+1, c) between (but not including) Yc... |

72 | A locality-preserving cache-oblivious dynamic dictionary
- Bender, Duan, et al.
- 2002
(Show Context)
Citation Context ...t al. [22] developed cache-oblivious algorithms for sorting, Fast Fourier Transform, and matrix multiplication. Subsequently, a number of other results have been obtained in the cache-oblivious model =-=[7, 10, 11, 12, 13, 16, 17, 24]-=-, among them several cache-oblivious B-tree structure with O(log B N) search and update bounds [11, 12, 13, 17, 24]. Several of these structures can also support one-dimensional range queries in O(log... |

64 | Lower bounds for orthogonal range searching: I. The reporting case
- Chazelle
- 1990
(Show Context)
Citation Context ...rts one-dimensional range queries in O(log B N + T/B) memory transfers using linear space. In two dimensions, one has to use #(N log B N log B log B N ) space to obtain an O(log B N +T/B) query bound =-=[8, 20]-=-. The external range-tree structure obtains these bounds and supports updates in O( log 2 B N log B log B N ) memory transfers [8]. If only linear space is used, O( p N/B + T/B) is a lower bound on th... |

63 | Cache oblivious search trees via binary trees of small height (extended abstract
- Brodal, Fagerberg, et al.
- 2002
(Show Context)
Citation Context ...t al. [22] developed cache-oblivious algorithms for sorting, Fast Fourier Transform, and matrix multiplication. Subsequently, a number of other results have been obtained in the cache-oblivious model =-=[7, 10, 11, 12, 13, 16, 17, 24]-=-, among them several cache-oblivious B-tree structure with O(log B N) search and update bounds [11, 12, 13, 17, 24]. Several of these structures can also support one-dimensional range queries in O(log... |

40 | Cache oblivious distribution sweeping, in
- Brodal, Fagerberg
(Show Context)
Citation Context |

31 | Scanning and traversing: maintaining data for traversals in a memory hierarchy
- Bender, Cole, et al.
(Show Context)
Citation Context |

31 |
Optimized predecessor data structures for internal memory
- Rahman, Cole, et al.
- 2001
(Show Context)
Citation Context |

26 | Bkdtree: A dynamic scalable kd-tree
- Procopiuc, Agarwal, et al.
- 2003
(Show Context)
Citation Context ...) is a lower bound on the number of transfers needed to answer a query, and these bounds are obtained by the kd-B tree [25]. The kd-B tree can be constructed in O(Sort(N)) = O( N B log M/B N B ) I/Os =-=[1, 2]-=-, the number of I/Os needed to sort N elements, and using the logarithmic method [15] this leads to an O( log 2 N B log M/B N B ) = O(log 2 B N) update algorithm. Refer to recent surveys for further I... |

22 | A framework for index bulk loading and dynamization
- Agarwal, Arge, et al.
- 2001
(Show Context)
Citation Context ...) is a lower bound on the number of transfers needed to answer a query, and these bounds are obtained by the kd-B tree [25]. The kd-B tree can be constructed in O(Sort(N)) = O( N B log M/B N B ) I/Os =-=[1, 2]-=-, the number of I/Os needed to sort N elements, and using the logarithmic method [15] this leads to an O( log 2 N B log M/B N B ) = O(log 2 B N) update algorithm. Refer to recent surveys for further I... |

20 |
Exponential structures for cache-oblivious algorithms
- Bender, Cole, et al.
- 2001
(Show Context)
Citation Context |

11 |
Cache-oblivious priorityqueue and graph algorithms
- Arge, Bender, et al.
- 2002
(Show Context)
Citation Context |

9 |
M.: Tight(er) worst-case bounds on dynamic searching and priority queues
- Anderson, Thorup
- 2000
(Show Context)
Citation Context ...me update bound. To develop the structure, we use several new ideas as well as several previously developed cache-oblivious techniques, e.g. the van Emde Boas layout [12] and exponential search trees =-=[11, 5]-=-. To make the structure dynamic, we use the logarithmic method [15] and a new algorithm for cache-obliviously constructing a kd-tree in O(Sort(N)) memory transfers. The construction algorithm uses ide... |

6 |
Decomposable searching problems. Information Processing Letters
- Bentley
- 1979
(Show Context)
Citation Context ...unds are obtained by the kd-B tree [25]. The kd-B tree can be constructed in O(Sort(N)) = O( NB logM/B NB ) I/Os [1, 2], the number of I/Os needed to sort N elements, and using the logarithmic method =-=[15]-=- this leads to an O( log2 NB logM/B NB ) = O(log2B N) update algorithm. Refer to recent surveys for further I/O-model and hierarchical memory model results [6, 26]. Frigo et al. [22] developed cache-o... |