Advertisement

Optimal Cache-Oblivious Implicit Dictionaries

  • Gianni Franceschini
  • Roberto Grossi
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2719)

Abstract

We consider the issues of implicitness and cache-obliviousness in the classical dictionary problem for n distinct keys over an unbounded and ordered universe. One finding in this paper is that of closing the longstanding open problem about the existence of an optimal implicit dictionary over an unbounded universe. Another finding is motivated by the antithetic features of implicit and cache-oblivious models in data structures. We show how to blend their best qualities achieving O(log n) time and O(logB n) block transfers for searching and for amortized updating, while using just n memory cells like sorted arrays and heaps. As a result, we avoid space wasting and provide fast data access at any level of the memory hierarchy.

Keywords

Intermediate Node Memory Hierarchy Node Area Compactor Zone Block Transfer 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    M. A. Bender, E. D. Demaine, and M. Farach-Colton. Cache-oblivious b-trees. In Proc. 41st Symposium on Foundations of Computer Science, pages 399–409, 2000.Google Scholar
  2. 2.
    Michael A. Bender, Richard Cole, and Rajeev Raman. Exponential structures for efficient cache-oblivious algorithms. Lecture Notes in Computer Science, 2380:195–207, 2002.CrossRefMathSciNetGoogle Scholar
  3. 3.
    Michael A. Bender, Ziyang Duan, John Iacono, and Jing Wu. A locality-preserving cache-oblivious dynamic dictionary. In Proc. 13th Annual Symposium On Discrete Mathematics, pages 29–38, 2002.Google Scholar
  4. 4.
    Gerth Stølting Brodal, Rolf Fagerberg, and Riko Jacob. Cache-oblivious search trees via trees of small height. In Proc. 13th Annual ACM-SIAM Symposium on Discrete Algorithms, pages 39–48, 2002.Google Scholar
  5. 5.
    Andrej Brodnik and J. Ian Munro. Membership in constant time and almost-minimum space. SIAM Journal on Computing, 28(5):1627–1640, 1999.zbMATHCrossRefMathSciNetGoogle Scholar
  6. 6.
    Amos Fiat, Moni Naor, Jeanette P. Schmidt, and Alan Siegel. Nonoblivious hashing. Journal of the ACM, 39(4):764–782, October 1992.zbMATHCrossRefMathSciNetGoogle Scholar
  7. 7.
    Robert W. Floyd. Algorithm 245 (TREESORT). Communications of the ACM, 7:701, 1964.CrossRefGoogle Scholar
  8. 8.
    Gianni Franceschini and Roberto Grossi. Implicit dictionaries supporting searches and amortized updates in O(log n log log n). In Proc. 14th Annual Symposium on Discrete Algorithms, 2003.Google Scholar
  9. 9.
    Gianni Franceschini, Roberto Grossi, J. Ian Munro, and Linda Pagli. Implicit B-trees: New results for the dictionary problem. In IEEE Symposium on Foundations of Computer Science (FOCS), 2002.Google Scholar
  10. 10.
    Greg N. Frederickson. Implicit data structures for the dictionary problem. Journal of the ACM, 30(1):80–94, 1983.zbMATHCrossRefMathSciNetGoogle Scholar
  11. 11.
    Michael L. Fredman, János Komlós, and Endre Szemerédi. Storing a sparse table with O(1) worst case access time. J. ACM, 31(3):538–544, 1984.zbMATHCrossRefGoogle Scholar
  12. 12.
    M. Frigo, C. E. Leiserson, H. Prokop, and S. Ramachandran. Cache-oblivious algorithms. In Proc. 40th Annual Symposium on Foundations of Computer Science, pages 285–297, 1999.Google Scholar
  13. 13.
    Alon Itai, Alan G. Konheim, and Michael Rodeh. A sparse table implementation of priority queues. Proc. Intern. Colloquium on Automata, Languages and Programming, LNCS 115, pages 417–431, 1981.Google Scholar
  14. 14.
    D. E. Knuth. The Art of Computer Programming III: Sorting and Searching. Addison-Wesley, Reading, Massachusetts, 1973.Google Scholar
  15. 15.
    J. Ian Munro. An implicit data structure supporting insertion, deletion, and search in O(log2 n) time. Journal of Computer and System Sciences, 33(1):66–74, 1986.zbMATHCrossRefMathSciNetGoogle Scholar
  16. 16.
    J. Ian Munro and Hendra Suwanda. Implicit data structures for fast search and update. Journal of Computer and System Sciences, 21(2):236–250, 1980.zbMATHCrossRefMathSciNetGoogle Scholar
  17. 17.
    Rasmus Pagh. Low redundancy in static dictionaries with constant query time. SIAM Journal on Computing, 31(2):353–363, 2002.CrossRefMathSciNetGoogle Scholar
  18. 18.
    H. Prokop. Cache-oblivious algorithms. Master’s thesis. MIT, Cambridge, MA, 1999.Google Scholar
  19. 19.
    Rajeev Raman, Venkatesh Raman, and S. Srinivasa Rao. Succinct indexable dictionaries with applications to encoding k-ary trees and multisets. In ACM-SIAM Symposium on Discrete Algorithms, pages 233–242, 2002.Google Scholar
  20. 20.
    J. W. J. Williams. Algorithm 232: Heapsort. Communications of the ACM, 7:347–348, 1964.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Gianni Franceschini
    • 1
  • Roberto Grossi
    • 1
  1. 1.Dipartimento di InformaticaUniversità di PisaPisaItaly

Personalised recommendations