Optimal Worst-Case Operations for Implicit Cache-Oblivious Search Trees

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


We close an open issue on dictionaries dating back to the sixthies. An array of n keys can be sorted so that searching takes O(log n) time. Alternatively, it can be organized as a heap so that inserting and deleting keys take O(log n) time. We show that these bounds can be simultaneously achieved in the worst case for searching and updating by suitably maintaining a permutation of the n keys in the array. The resulting data structure is called implicit as it uses just O(1) extra memory cells beside the n cells for the array. The data structure is also cache-oblivious, attaining O(logB n) block transfers in the worst case for any (unknown) value of the block size B, without wasting any single cell of memory at any level of the memory hierarchy.


Internal Node Memory Hierarchy Compactor Zone Block Transfer Complete Binary Tree 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aho, A.V., Hopcroft, J.E., Ullman, J.D.: The Design and Analysis of Computer Algorithms. Addison-Wesley, Reading (1974)zbMATHGoogle Scholar
  2. 2.
    Arge, L., Vitter, J.S.: Optimal dynamic interval management in external memory. In: IEEE (ed.) 37th Annual Symposium on Foundations of Computer Science. Burlington, Vermontl, USA, October 14-16, pp. 560–569. IEEE Computer Society Press, Los Alamitos (1996)Google Scholar
  3. 3.
    Bender, M.A., Demaine, E.D., Farach-Colton, M.: Cache-oblivious B-trees. In: IEEE (ed.) 41st Annual Symposium on Foundations of Computer Science: proceedings: Redondo Beach, California, USA, 12-14 November, pp. 399–409. IEEE Computer Society Press, Los Alamitos (2000)CrossRefGoogle Scholar
  4. 4.
    Bender, M.A., Cole, R., Raman, R.: Exponential structures for efficient cache-oblivious algorithms. In: Widmayer, P., Triguero, F., Morales, R., Hennessy, M., Eidenbenz, S., Conejo, R. (eds.) ICALP 2002. LNCS, vol. 2380, pp. 195–206. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  5. 5.
    Brodal, G.S., Fagerberg, R., Jacob, R.: Cache-oblivious search trees via trees of small height. In: Proc. 13th Annual ACM-SIAM Symposium on Discrete Algorithms, pp. 39–48 (2002)Google Scholar
  6. 6.
    Dietz, P., Sleator, D.: Two algorithms for maintaining order in a list. In: Aho, A. (ed.) Proceedings of the 19th Annual ACM Symposium on Theory of Computing, pp. 365–372. ACM Press, New York (1987)Google Scholar
  7. 7.
    Franceschini, G., Grossi, R.: Implicit dictionaries supporting searches and amortized updates in O(log n log log n). In: Proceedings of the 14th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA 2003), pp. 670–678. SIAM, Philadelphia (2003)Google Scholar
  8. 8.
    Franceschini, G., Grossi, R.: Optimal cache-oblivious implicit dictionaries. In: International Colloquium on Automata, Languages and Programming, LNCS (2003)Google Scholar
  9. 9.
    Franceschini, G., Grossi, R.: Optimal implicit and cache-oblivious dictionaries over unbounded universes (2003) Full versionGoogle Scholar
  10. 10.
    Franceschini, G., Grossi, R.: Optimal space-time dictionaries over an unbounded universe with flat implicit trees. Technical report TR-03-03, January 30 (2003) Google Scholar
  11. 11.
    Franceschini, G., Grossi, R., Ian Munro, J., Pagli, L.: Implicit Btrees: New results for the dictionary problem. In: IEEE Symposium on Foundations of Computer Science, FOCS (2002)Google Scholar
  12. 12.
    Frederickson, G.N.: Implicit data structures for the dictionary problem. Journal of the ACM 30(1), 80–94 (1983)zbMATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    Frigo, M., Leiserson, C.E., Prokop, H., Ramachandran, S.: Cache-oblivious algorithms. In: IEEE (ed.) 40th Annual Symposium on Foundations of Computer Science. New York City, New York, USA, 1109 Spring Street, Suite 300, Silver Spring, MD 20910, October 17-19, pp. 285–297. IEEE Computer Society Press, Los Alamitos (1999)Google Scholar
  14. 14.
    Itai, A., Konheim, A.G., Rodeh, M.: A sparse table implementation of priority queues. In: Even, S., Kariv, O. (eds.) ICALP 1981. LNCS, vol. 115, pp. 417–431. Springer, Heidelberg (1981)Google Scholar
  15. 15.
    Knuth, D.E.: The Art of Computer Programming III: Sorting and Searching. Addison–Wesley, Reading (1973)Google Scholar
  16. 16.
    Ian Munro, J.: 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
  17. 17.
    Ian Munro, J., Suwanda, H.: Implicit data structures for fast search and update. Journal of Computer and System Sciences 21(2), 236–250 (1980)zbMATHCrossRefMathSciNetGoogle Scholar
  18. 18.
    Willard, D.E.: A density control algorithm for doing insertions and deletions in a sequentially ordered file in good worst-case time. Information and Computation 97(2), 150–204 (1992)zbMATHCrossRefMathSciNetGoogle Scholar
  19. 19.
    Williams, J.W.J.: Algorithm 232: Heapsort. Communications of the ACM 7, 347–348 (1964)Google Scholar
  20. 20.
    Yao, A.C.: Should tables be sorted? J. Assoc. Comput. Mach. 31, 245–281 (1984)MathSciNetGoogle 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