Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Aho, A.V., Hopcroft, J.E., Ullman, J.D.: The Design and Analysis of Computer Algorithms. Addison-Wesley, Reading (1974)
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)
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)
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)
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)
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)
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)
Franceschini, G., Grossi, R.: Optimal cache-oblivious implicit dictionaries. In: International Colloquium on Automata, Languages and Programming, LNCS (2003)
Franceschini, G., Grossi, R.: Optimal implicit and cache-oblivious dictionaries over unbounded universes (2003) Full version
Franceschini, G., Grossi, R.: Optimal space-time dictionaries over an unbounded universe with flat implicit trees. Technical report TR-03-03, January 30 (2003)
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)
Frederickson, G.N.: Implicit data structures for the dictionary problem. Journal of the ACM 30(1), 80–94 (1983)
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)
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)
Knuth, D.E.: The Art of Computer Programming III: Sorting and Searching. Addison–Wesley, Reading (1973)
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)
Ian Munro, J., Suwanda, H.: Implicit data structures for fast search and update. Journal of Computer and System Sciences 21(2), 236–250 (1980)
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)
Williams, J.W.J.: Algorithm 232: Heapsort. Communications of the ACM 7, 347–348 (1964)
Yao, A.C.: Should tables be sorted? J. Assoc. Comput. Mach. 31, 245–281 (1984)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Franceschini, G., Grossi, R. (2003). Optimal Worst-Case Operations for Implicit Cache-Oblivious Search Trees. In: Dehne, F., Sack, JR., Smid, M. (eds) Algorithms and Data Structures. WADS 2003. Lecture Notes in Computer Science, vol 2748. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45078-8_11
Download citation
DOI: https://doi.org/10.1007/978-3-540-45078-8_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40545-0
Online ISBN: 978-3-540-45078-8
eBook Packages: Springer Book Archive