Engineering Select Support for Hybrid Bitvectors
By: Eric Chiu, Dominik Kempa
Potential Business Impact:
Makes computers find data faster and use less space.
One of the central problems in the design of compressed data structures is the efficient support for rank and select queries on bitvectors. These two operations form the backbone of more complex data structures (such as wavelet trees) used for the compact representation of texts, trees, graphs, or grids. Their efficient implementation is one of the most frequently studied problems in compressed data structures. One effective solution is the so-called hybrid bitvector implementation, which partitions the input bitvector into blocks and adaptively selects an encoding method, such as run-length, plain, or minority encoding, based on local redundancy. Experiments have shown that hybrid bitvectors achieve excellent all-around performance on repetitive and non-repetitive inputs. However, current implementations support only rank queries (i.e., counting the number of ones up to a given position) and lack support for select queries. This limitation significantly restricts their applicability. In this paper, we propose a method to add support for select queries to hybrid bitvectors, and we conduct an extensive set of experiments. Our results show that hybrid bitvectors offer excellent performance, matching the speed of the fastest and the space efficiency of the most compact existing bitvectors.
Similar Papers
Theory Meets Practice for Bit Vectors Supporting Rank and Select
Data Structures and Algorithms
Makes computer data smaller and faster to find.
Toward Efficient and Scalable Design of In-Memory Graph-Based Vector Search
Information Retrieval
Finds similar items in huge data collections fast.
Succinct Dynamic Rank/Select: Bypassing the Tree-Structure Bottleneck
Data Structures and Algorithms
Makes computer lists change super fast, using less space.