(Worst-Case) Optimal Adaptive Dynamic Bitvectors (2405.15088v4)
Abstract: While operations {\em rank} and {\em select} on static bitvectors can be supported in constant time, lower bounds show that supporting updates raises the cost per operation to $\Theta(\log n/ \log\log n)$ on bitvectors holding $n$ bits. This is a shame in scenarios where updates are possible but uncommon. We develop a representation of bitvectors that we call adaptive dynamic bitvector, which uses the asymptotically optimal $n+o(n)$ bits of space and, if there are $q$ queries per update, supports all the operations in $O(\log(n/q)/\log\log n)$ amortized time. Further, we prove that this time is \new{worst-case} optimal in the cell probe model. We describe a large number of applications of our representation to other compact dynamic data structures.
- Dietz, P.: Optimal algorithms for list indexing and subset rank. In: Proc. Workshop on Algorithms and Data Structures (WADS). pp. 39–46 (1989)
- Munro, J.I.: Tables. In: Proc. 16th Conference on Foundations of Software Technology and Theoretical Computer Science (FSTTCS). pp. 37–42. LNCS 1180 (1996)
- Navarro, G.: Compact Data Structures – A practical approach. Cambridge University Press (2016)
- Prezza, N.: A framework of dynamic data structures for string processing. In: Proc. 16th International Symposium on Experimental Algorithms (SEA). pp. 11:1–11:15 (2017)