## Engineering a Sorted List Data Structure for 32 Bit Keys

### Cached

### Download Links

Citations: | 2 - 0 self |

### BibTeX

@MISC{Dementiev_engineeringa,

author = {Roman Dementiev and Lutz Kettner and Jens Mehnert and Peter Sanders},

title = {Engineering a Sorted List Data Structure for 32 Bit Keys},

year = {}

}

### OpenURL

### Abstract

Search tree data structures like van Emde Boas (vEB) trees are a theoretically attractive alternative to comparison based search trees because they have better asymptotic performance for small integer keys and large inputs. This paper studies their practicability using 32 bit keys as an example. While direct implementations of vEB-trees cannot compete with good implementations of comparison based data structures, our tuned data structure significantly outperforms comparison based implementations for searching and shows at least comparable performance for insertion and deletion.

### Citations

2324 | The Art of Computer Programming - Knuth - 1973 |

665 | LEDA: A Platform for Combinatorial and Geometric Computing
- Mehlhorn, Näher
- 1999
(Show Context)
Citation Context ...etion. 1 Introduction Sorted lists with an auxiliary data structure that supports fast searching, insertion, and deletion are one of the most versatile data structures. In current algorithm libraries =-=[9, 2]-=-, they are implemented using comparison based data structures such as ab-trees, red-black trees, splay trees, or skip lists (e.g. [9]). These implementations support insertion, deletion, and search in... |

282 |
Algorithms for reporting and counting geometric intersections
- Bentley, Ottmann
- 1979
(Show Context)
Citation Context ...es can be implemented very eciently using hash tables. However, none of these data structures is applicable if we have to maintain a sorted list dynamically. Simple examples are sweep-line algorithms =-=[3]-=- for orthogonal objects, 2 bestsrst heuristics (e.g., [7]), orsnding free slots in a list of occupied intervals (e.g. [4]). 2 The Data Structure We now describe a data structure Stree that stores an o... |

230 |
Approximation algorithms for bin packing: A survey, in Approximation algorithms for NP-hard problems
- Coffman, Garey, et al.
- 1997
(Show Context)
Citation Context ...ned. However, although search trees are a performance bottleneck in several important applications that have also been intensively studied experimentally (e.g. the bestsrst heuristics for bin packing =-=[5-=-]), we are not aware of real inputs used in any of these studies. 9 Acknowledgments We would like to thank Kurt Mehlhorn and Stefan Naher for valuable suggestions. 9 There are extensive inputs availab... |

114 |
Emde Boas. Preserving order in a forest in less than logarithmic time and linear space
- van
- 1977
(Show Context)
Citation Context ... the number of elements and k is the size of the output. For w bit integer keys, a theoretically attractive alternative are van Emde Boas stratied trees (vEB-trees) that replace the log n by a log w [=-=12, 10]-=-: A vEB tree T for storing subsets M of w = 2 k+1 bit integers stores the set directly if jM j = 1. Otherwise it contains a root (hash) table r such that r[i] points to a vEB tree T i for 2 k bit inte... |

107 | Fast algorithm for bin packing
- Johnson
- 1974
(Show Context)
Citation Context ...wever, none of these data structures is applicable if we have to maintain a sorted list dynamically. Simple examples are sweep-line algorithms [3] for orthogonal objects, 2 bestsrst heuristics (e.g., =-=[7]-=-), orsnding free slots in a list of occupied intervals (e.g. [4]). 2 The Data Structure We now describe a data structure Stree that stores an ordered set of elements M with 32-bit integer keys support... |

91 |
Generic Programming and the STL: Using and Extending the C++ Standard Template Library
- Austern
- 1998
(Show Context)
Citation Context ...etion. 1 Introduction Sorted lists with an auxiliary data structure that supports fast searching, insertion, and deletion are one of the most versatile data structures. In current algorithm libraries =-=[9, 2]-=-, they are implemented using comparison based data structures such as ab-trees, red-black trees, splay trees, or skip lists (e.g. [9]). These implementations support insertion, deletion, and search in... |

25 | Multi-phase Algorithms for Throughput Maximization for Real-Time Scheduling
- Berman, DasGupta
- 2000
(Show Context)
Citation Context ... maintain a sorted list dynamically. Simple examples are sweep-line algorithms [3] for orthogonal objects, 2 bestsrst heuristics (e.g., [7]), orsnding free slots in a list of occupied intervals (e.g. =-=[4]-=-). 2 The Data Structure We now describe a data structure Stree that stores an ordered set of elements M with 32-bit integer keys supporting the main operations element insertion, element deletion, and... |

14 | IP address lookup made fast and simple
- Crescenzi, Dardini, et al.
- 1999
(Show Context)
Citation Context ...rting a more restricted set of operations. In particular, sorting has been studied extensively. Other variants are priority queues (e.g. [1]), or data structures supporting fast search in static data =-=[6]-=-. Furthermore, dictionaries can be implemented very eciently using hash tables. However, none of these data structures is applicable if we have to maintain a sorted list dynamically. Simple examples a... |

14 | Bounded ordered dictionaries in O(log log n) time and O(n) space - Mehlhorn, Naher - 1990 |

6 |
Bounded Ordered Dictionaries in O(log log N
- Mehlhorn, Näher
- 1990
(Show Context)
Citation Context ... the number of elements and k is the size of the output. For w bit integer keys, a theoretically attractive alternative are van Emde Boas stratied trees (vEB-trees) that replace the log n by a log w [=-=12, 10]-=-: A vEB tree T for storing subsets M of w = 2 k+1 bit integers stores the set directly if jM j = 1. Otherwise it contains a root (hash) table r such that r[i] points to a vEB tree T i for 2 k bit inte... |

6 |
Worterbucher fur ein beschranktes Universum
- Wenzel
- 1992
(Show Context)
Citation Context ...d to consume only linear space. It can also be combined with a doubly linked sorted list to support fast successor and predecessor queries. However, we are only aware of a single implementation study =-=[13-=-] where the conclusion is that vEB-trees are of mainly theoretical interest. In fact, our experiments show that they are slower than comparison based implementations even for 32 bit keys. Partially s... |

2 | Navarro and. Algorithms for Memory Hierarchies, volume 2625 - Gonzalez, Larriba-Pey, et al. - 2003 |

2 | Algorithms for Memory Hierarchies, volume 2625 of LNCS, chapter Algorithms for Hardware Caches and TLB - Rahman - 2003 |

1 | A pragmatic implementation of monotone priority queues
- Andersson, Thorup
- 1996
(Show Context)
Citation Context ... of size 2 16 and the lower levels use hash tables of size up to 256. Locating entries in these tables is achieved using hierarchies of bit patterns similar to the integer priority queue described in =-=[1-=-]. Experiments described in Section 3 indicate that this data structure is signicantly faster in searching elements than comparison based implementations. For insertion and deletion the two alternativ... |

1 |
Comparison of search-tree data structures in LEDA. personal communication
- Näher
(Show Context)
Citation Context ... the STL map which is based on red-black trees and ab tree from LEDA which is based on (a; b)-trees with a = 2, b = 16 which fared best in a previous comparison of search tree data structures in LEDA =-=[11]-=-. 5 We present three implementations of integer data structures. orig-Stree is a direct C++ implementation of the algorithm described in [10], LEDA-Stree is an implementation of the same algorithm ava... |