Rank/Select on Dynamic Compressed Sequences and Applications

Rodrigo González and Gonzalo Navarro

Operations rank and select over a sequence of symbols have many applications to the design of succinct and compressed data structures managing text collections, structured text, binary relations, trees, graphs, and so on. We are interested in the case where the collections can be updated via insertions and deletions of symbols. Two current solutions stand out as the best in the tradeoff of space versus time (when considering all the operations). One solution, by Mäkinen and Navarro, achieves compressed space (i.e., nH_0+o(n log s) bits) and O(log n log s) worst-case time for all the operations, where n is the sequence length, s is the alphabet size, and H_0 is the zero-order entropy of the sequence. The other solution, by Lee and Park, achieves O(log n (1+(log s)/(log log n))) amortized time and uncompressed space, i.e. n log_2 s +O(n)+o(n log s) bits. In this paper we show that the best of both worlds can be achieved. We combine the solutions to obtain nH_0+o(n log s) bits of space and O(log n (1+(log s)/(log log n))) worst-case time for all the operations. Apart from the best current solution to the problem, we obtain several byproducts of independent interest applicable to partial sums, text indexes, suffix arrays, the Burrows-Wheeler transform, and others.