An empirical comparison of priority-queue and event-set implementations
Communications of the ACM
An implicit data structure supporting insertion, deletion, and search in O(log:OS2:OEn) time
Journal of Computer and System Sciences
The input/output complexity of sorting and related problems
Communications of the ACM
An implicit binomial queue with constant insertion time
No. 318 on SWAT 88: 1st Scandinavian workshop on algorithm theory
Fast updating of well-balanced trees
SWAT '90 Proceedings of the second Scandinavian workshop on Algorithm theory
Lower bounds for monotonic list labeling
SWAT '90 Proceedings of the second Scandinavian workshop on Algorithm theory
The influence of caches on the performance of heaps
Journal of Experimental Algorithmics (JEA)
Computer architecture (2nd ed.): a quantitative approach
Computer architecture (2nd ed.): a quantitative approach
Nonlinear array layouts for hierarchical memory systems
ICS '99 Proceedings of the 13th international conference on Supercomputing
LEDA: a platform for combinatorial and geometric computing
LEDA: a platform for combinatorial and geometric computing
A locality-preserving cache-oblivious dynamic dictionary
SODA '02 Proceedings of the thirteenth annual ACM-SIAM symposium on Discrete algorithms
A Sparse Table Implementation of Priority Queues
Proceedings of the 8th Colloquium on Automata, Languages and Programming
FOCS '99 Proceedings of the 40th Annual Symposium on Foundations of Computer Science
FOCS '00 Proceedings of the 41st Annual Symposium on Foundations of Computer Science
Optimal dynamic interval management in external memory
FOCS '96 Proceedings of the 37th Annual Symposium on Foundations of Computer Science
Cache-oblivious priority queue and graph algorithm applications
STOC '02 Proceedings of the thiry-fourth annual ACM symposium on Theory of computing
A locality-preserving cache-oblivious dynamic dictionary
SODA '02 Proceedings of the thirteenth annual ACM-SIAM symposium on Discrete algorithms
Exponential Structures for Efficient Cache-Oblivious Algorithms
ICALP '02 Proceedings of the 29th International Colloquium on Automata, Languages and Programming
Cache Oblivious Distribution Sweeping
ICALP '02 Proceedings of the 29th International Colloquium on Automata, Languages and Programming
Funnel Heap - A Cache Oblivious Priority Queue
ISAAC '02 Proceedings of the 13th International Symposium on Algorithms and Computation
Efficient Tree Layout in a Multilevel Memory Hierarchy
ESA '02 Proceedings of the 10th Annual European Symposium on Algorithms
Scanning and Traversing: Maintaining Data for Traversals in a Memory Hierarchy
ESA '02 Proceedings of the 10th Annual European Symposium on Algorithms
Cache-oblivious data structures for orthogonal range searching
Proceedings of the nineteenth annual symposium on Computational geometry
On the limits of cache-obliviousness
Proceedings of the thirty-fifth annual ACM symposium on Theory of computing
A comparison of cache aware and cache oblivious static search trees using program instrumentation
Experimental algorithmics
Proximity Mergesort: optimal in-place sorting in the cache-oblivious model
SODA '04 Proceedings of the fifteenth annual ACM-SIAM symposium on Discrete algorithms
Consistent and compact data management in distributed storage systems
Proceedings of the sixteenth annual ACM symposium on Parallelism in algorithms and architectures
A locality-preserving cache-oblivious dynamic dictionary
Journal of Algorithms
Cache-oblivious planar orthogonal range searching and counting
SCG '05 Proceedings of the twenty-first annual symposium on Computational geometry
SCG '05 Proceedings of the twenty-first annual symposium on Computational geometry
Concurrent cache-oblivious b-trees
Proceedings of the seventeenth annual ACM symposium on Parallelism in algorithms and architectures
Cache-oblivious string dictionaries
SODA '06 Proceedings of the seventeenth annual ACM-SIAM symposium on Discrete algorithm
Simple and semi-dynamic structures for cache-oblivious planar orthogonal range searching
Proceedings of the twenty-second annual symposium on Computational geometry
An adaptive packed-memory array
Proceedings of the twenty-fifth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Cache-oblivious string B-trees
Proceedings of the twenty-fifth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Cache-oblivious nested-loop joins
CIKM '06 Proceedings of the 15th ACM international conference on Information and knowledge management
Engineering a cache-oblivious sorting algorithm
Journal of Experimental Algorithmics (JEA)
Cache-oblivious streaming B-trees
Proceedings of the nineteenth annual ACM symposium on Parallel algorithms and architectures
HAT-trie: a cache-conscious trie-based data structure for strings
ACSC '07 Proceedings of the thirtieth Australasian conference on Computer science - Volume 62
ESA'06 Proceedings of the 14th conference on Annual European Symposium - Volume 14
Information Processing Letters
An adaptive packed-memory array
ACM Transactions on Database Systems (TODS)
Cache-oblivious databases: Limitations and opportunities
ACM Transactions on Database Systems (TODS)
Monotone minimal perfect hashing: searching a sorted table with O(1) accesses
SODA '09 Proceedings of the twentieth Annual ACM-SIAM Symposium on Discrete Algorithms
Fault Tolerant External Memory Algorithms
WADS '09 Proceedings of the 11th International Symposium on Algorithms and Data Structures
Comparing integer data structures for 32- and 64-bit keys
Journal of Experimental Algorithmics (JEA)
Engineering burstsort: Toward fast in-place string sorting
Journal of Experimental Algorithmics (JEA)
Computational Geometry: Theory and Applications
Algorithms for memory hierarchies: advanced lectures
Algorithms for memory hierarchies: advanced lectures
Optimal cache-oblivious implicit dictionaries
ICALP'03 Proceedings of the 30th international conference on Automata, languages and programming
Optimal resilient dynamic dictionaries
ESA'07 Proceedings of the 15th annual European conference on Algorithms
I/O-efficient map overlay and point location in low-density subdivisions
ISAAC'07 Proceedings of the 18th international conference on Algorithms and computation
Reducing splaying by taking advantage of working sets
WEA'08 Proceedings of the 7th international conference on Experimental algorithms
A general approach for cache-oblivious range reporting and approximate range counting
Computational Geometry: Theory and Applications
Cache-oblivious polygon indecomposability testing
Proceedings of the 4th International Workshop on Parallel and Symbolic Computation
Engineering scalable, cache and space efficient tries for strings
The VLDB Journal — The International Journal on Very Large Data Bases
Cache-oblivious dynamic dictionaries with update/query tradeoffs
SODA '10 Proceedings of the twenty-first annual ACM-SIAM symposium on Discrete Algorithms
Algorithm engineering: bridging the gap between algorithm theory and practice
Algorithm engineering: bridging the gap between algorithm theory and practice
Redesigning the string hash table, burst trie, and BST to exploit cache
Journal of Experimental Algorithmics (JEA)
Optimal in-place sorting of vectors and records
ICALP'05 Proceedings of the 32nd international conference on Automata, Languages and Programming
Tight lower bounds for the online labeling problem
STOC '12 Proceedings of the forty-fourth annual ACM symposium on Theory of computing
Designing reliable algorithms in unreliable memories
Computer Science Review
On online labeling with polynomially many labels
ESA'12 Proceedings of the 20th Annual European conference on Algorithms
Cache-Oblivious dictionaries and multimaps with negligible failure probability
MedAlg'12 Proceedings of the First Mediterranean conference on Design and Analysis of Algorithms
On randomized online labeling with polynomially many labels
ICALP'13 Proceedings of the 40th international conference on Automata, Languages, and Programming - Volume Part I
Hi-index | 0.00 |
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.