We develop cache-oblivious data structures for orthogonal range searching, the problem of finding all T points in a set of N points in Êd 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(log2 B 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 log2 2 N) space. The analysis of the latter structure requires that B = 22c for some nonnegative integer constant c. Categories and Subject Descriptors F.2 [Analysis of Algorithms and Problem Complexity]: Nonnumerical Algorithms and Problems General Terms Algorithms Keywords Cache-oblivious, Orthog...
Pankaj K. Agarwal, Lars Arge, Andrew Danner, Bryan