ACM Home Page
Please provide us with feedback. Feedback
Cache oblivious search trees via binary trees of small height
Full text PdfPdf (1.10 MB)
Source Symposium on Discrete Algorithms archive
Proceedings of the thirteenth annual ACM-SIAM symposium on Discrete algorithms table of contents
San Francisco, California
Pages: 39 - 48  
Year of Publication: 2002
ISBN:0-89871-513-X
Authors
Gerth Stølting Brodal  University of Aarhus, Ny Munkegade, DK-8000 Århus C, Denmark
Rolf Fagerberg  University of Aarhus, Ny Munkegade, DK-8000 Århus C, Denmark
Riko Jacob  University of Aarhus, Ny Munkegade, DK-8000 Århus C, Denmark
Sponsor
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
Publisher
Society for Industrial and Applied Mathematics  Philadelphia, PA, USA
Bibliometrics
Downloads (6 Weeks): 14,   Downloads (12 Months): 60,   Citation Count: 22
Additional Information:

abstract   references   cited by   collaborative colleagues  

Tools and Actions: Review this Article  

ABSTRACT

We propose a version of cache oblivious search trees which is simpler than the previous proposal of Bender, Demaine and Farach-Colton and has the same complexity bounds. In particular, our data structure avoids the use of weight balanced B-trees, and can be implemented as just a single array of data elements, without the use of pointers. The structure also improves space utilization.For storing n elements, our proposal uses (1 + ε)n times the element size of memory, and performs searches in worst case O(logB n) memory transfers, updates in amortized O((log2 n)/(εB)) memory transfers, and range queries in worst case O(logB n + k/B) memory transfers, where k is the size of the output.The basic idea of our data structure is to maintain a dynamic binary tree of height log n+O(1) using existing methods, embed this tree in a static binary tree, which in turn is embedded in an array in a cache oblivious fashion, using the van Emde Boas layout of Prokop.We also investigate the practicality of cache obliviousness in the area of search trees, by providing an empirical comparison of different methods for laying out a search tree in memory.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
 
3
 
4
R. Bayer and E. McCreight. Organization and maintenance of large ordered indexes. Acta Informatica, 1:173-189, 1972.
 
5
 
6
 
7
8
 
9
 
10
 
11
A. Fiat, J. I. Munro, M. Naor, A. A. Schäffer, J. P. Schmidt, and A. Siegel. An implicit data structure for searching a multikey table in logarithmic time. Journal of Computer and System Sciences, 43(3):406-424, 1991.
 
12
 
13
 
14
15
16
 
17
 
18
 
19
H. Prokop. Cache-oblivious algorithms. Master's thesis, Massachusetts Institute of Technology, June 1999.
 
20
 
21
P. van Emde Boas. Preserving order in a forest in less than logarithmic time and linear space. Inf. Process. Lett., 6:80-82, 1977.
 
22
P. van Emde Boas, R. Kaas, and E. Zijlstra. Design and implementation of an efficient priority queue. Mathematical Systems Theory, 10:99-127, 1977.
 
23
J. W. J. Williams. Algorithm 232: Heapsort. Communications of the ACM, 7(6):347-348, 1964.

CITED BY  22
Collaborative Colleagues:
Gerth Stølting Brodal: colleagues
Rolf Fagerberg: colleagues
Riko Jacob: colleagues