<p>While operations <i>rank</i> and <i>select</i> on static bitvectors can be supported in constant time, lower bounds show that supporting updates raises the cost per operation to <InlineEquation ID="IEq1"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="224_2025_10229_Article_IEq1.gif" Format="GIF" Height="19" Rendition="HTML" Resolution="72" Type="Linedraw" Width="127" /> </InlineMediaObject> <EquationSource Format="TEX">\(\Theta (\log n/ \log \log n)\)</EquationSource> </InlineEquation> on bitvectors holding <i>n</i> 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 <InlineEquation ID="IEq2"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="224_2025_10229_Article_IEq2.gif" Format="GIF" Height="19" Rendition="HTML" Resolution="72" Type="Linedraw" Width="62" /> </InlineMediaObject> <EquationSource Format="TEX">\(n+o(n)\)</EquationSource> </InlineEquation> bits of space and, if there are <i>q</i> queries per update, supports all the operations in <InlineEquation ID="IEq3"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="224_2025_10229_Article_IEq3.gif" Format="GIF" Height="19" Rendition="HTML" Resolution="72" Type="Linedraw" Width="154" /> </InlineMediaObject> <EquationSource Format="TEX">\(O(\log (n/q)/\log \log n)\)</EquationSource> </InlineEquation> amortized time. Further, we prove that this time is worst-case optimal in the cell probe model. We describe a large number of applications of our representation to other compact dynamic data structures.</p>

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

(Worst-case) Optimal Adaptive Dynamic Bitvectors

  • Gonzalo Navarro

摘要

While operations rank and 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 worst-case optimal in the cell probe model. We describe a large number of applications of our representation to other compact dynamic data structures.