pith. sign in

arxiv: 1709.02377 · v1 · pith:VHZDD65Ynew · submitted 2017-09-07 · 💻 cs.DS

Rank-Select Indices Without Tears

classification 💻 cs.DS
keywords mathitrank-selectbitsgivenldotsranktimeconstant
0
0 comments X
read the original abstract

A rank-select index for a sequence $B=(b_1,\ldots,b_n)$ of $n$ bits is a data structure that, if provided with an operation to access $\Theta(\log n)$ arbitrary consecutive bits of $B$ in constant time (thus $B$ is stored outside of the data structure), can compute $\mathit{rank}_B(j)=\sum_{i=1}^j b_i$ for given $j\in\{0,\ldots,n\}$ and $\mathit{select}_B(k)=\min\{j:\mathit{rank}_B(j)\ge k\}$ for given $k\in\{1,\ldots,\sum_{i=1}^n b_i\}$. We describe a new rank-select index that, like previous rank-select indices, occupies $O(n\log\log n/\log n)$ bits and executes $\mathit{rank}$ and $\mathit{select}$ queries in constant time. Its derivation is intended to be particularly easy to follow and largely free of tedious low-level detail, its operations are given by straight-line code, and we show that it can be constructed in $O(n/\log n)$ time.

This paper has not been read by Pith yet.

discussion (0)

Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.