An Experimental Evaluation of Hybrid Data Structures for Searching

A common paradigm in data structures is to combine two different kinds of data structures into one, yielding a hybrid data structure with improved resource bounds. We perform an experimental evaluation of hybrid data structures in the context of maintaining a dynamic ordered set whose items have integer or floating-point keys. Among other things we demonstrate clear speedups over library implementations of search trees, both for predecessor queries and updates. Our implementations use very little extra memory compared to search trees, and are also quite generic.

[1]  Sartaj Sahni,et al.  Data Structures, Algorithms, and Applications in C++ , 1997 .

[2]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[3]  Robert E. Tarjan,et al.  Design and Analysis of a Data Structure for Representing Sorted Lists , 1978, SIAM J. Comput..

[4]  Donald E. Knuth,et al.  The Art of Computer Programming: Volume 3: Sorting and Searching , 1998 .

[5]  Takashi Sato,et al.  An efficient implementation of trie structures , 1992, Softw. Pract. Exp..

[6]  David A. Patterson,et al.  Computer architecture (2nd ed.): a quantitative approach , 1996 .

[7]  Udi Manber,et al.  GLIMPSE: A Tool to Search Through Entire File Systems , 1994, USENIX Winter.

[8]  Svante Carlsson,et al.  Small forwarding tables for fast routing lookups , 1997, SIGCOMM '97.

[9]  David B. Lomet,et al.  A simple bounded disorder file organization with good performance , 1988, TODS.

[10]  Torben Hagerup,et al.  Sorting and Searching on the Word RAM , 1998, STACS.

[11]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[12]  Sartaj Sahni,et al.  Data Structures, Algorithms and Applications in Java , 1998 .

[13]  Michael L. Fredman,et al.  Surpassing the Information Theoretic Bound with Fusion Trees , 1993, J. Comput. Syst. Sci..

[14]  Dan E. Willard New Trie Data Structures Which Support Very Fast Search Operations , 1984, J. Comput. Syst. Sci..

[15]  David A. Patterson,et al.  Computer Architecture - A Quantitative Approach, 5th Edition , 1996 .

[16]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[17]  Ian H. Witten,et al.  Bonsai: A compact representation of trees , 1993, Softw. Pract. Exp..

[18]  Paul F. Dietz Maintaining order in a linked list , 1982, STOC '82.

[19]  Kai Shen,et al.  Adaptive Algorithms for Cache-Efficient Trie Search , 1998, ALENEX.

[20]  Stefan Nilsson,et al.  Implementing a Dynamic Compressed Trie , 1998, WAE.

[21]  Paul F. Dietz,et al.  Two algorithms for maintaining order in a list , 1987, STOC.

[22]  Mark H. Overmars,et al.  The Design of Dynamic Data Structures , 1987, Lecture Notes in Computer Science.

[23]  Peter van Emde Boas,et al.  Preserving Order in a Forest in Less Than Logarithmic Time and Linear Space , 1977, Inf. Process. Lett..