Rank/select on dynamic compressed sequences and applications
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 Makinen and Navarro, achieves compressed space (i.e., nH(0) + o(n log sigma) bits) and O(log n log sigma) worst-case time for all the operations, where n is the sequence length, sigma 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 sigma/log log n)) amortized time and uncompressed space, i.e. n log(2) sigma + O(n) + o(n log sigma) 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 sigma) bits of space and O(log n(1 + log sigma/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. (C) 2009 Elsevier B.V. All rights reserved.
compressed data structures text indexing empirical entropy