Rank and select: Another lesson learned
•We present new solutions for the primitives on binary vectors, ranks and select.•Special care for blocks with all 0 or all 1 bits poses a good space-time tradeoff.•Compressed select is not much slower than compressed rank in a similar space. Rank and select queries on bitmaps are essential building...
Gespeichert in:
Veröffentlicht in: | Information systems (Oxford) 2018-03, Vol.73, p.25-34 |
---|---|
Hauptverfasser: | , |
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | •We present new solutions for the primitives on binary vectors, ranks and select.•Special care for blocks with all 0 or all 1 bits poses a good space-time tradeoff.•Compressed select is not much slower than compressed rank in a similar space.
Rank and select queries on bitmaps are essential building bricks of many compressed data structures, including text indexes, membership and range supporting spatial data structures, compressed graphs, and more. Theoretically considered yet in 1980s, these primitives have also been a subject of vivid research concerning their practical incarnations in the last decade. We present a few novel rank/select variants, focusing mostly on speed, obtaining competitive space-time results in the compressed setting. Our findings can be summarized as follows: (i) no single rank/select solution works best on any kind of data (ours are optimized for bit arrays obtained from wavelet trees for real text datasets, but also work well for LOUDS-encoded XML tree layouts), (ii) it pays to efficiently handle blocks consisting of all 0 or all 1 bits, (iii) compressed select does not have to be significantly slower than compressed rank at a comparable memory use. |
---|---|
ISSN: | 0306-4379 1873-6076 |
DOI: | 10.1016/j.is.2017.12.001 |