2000 character limit reached
Fast and Compact Prefix Codes (0905.3107v1)
Published 19 May 2009 in cs.DS
Abstract: It is well-known that, given a probability distribution over $n$ characters, in the worst case it takes (\Theta (n \log n)) bits to store a prefix code with minimum expected codeword length. However, in this paper we first show that, for any $0<\epsilon<1/2$ with (1 / \epsilon = \Oh{\polylog{n}}), it takes $\Oh{n \log \log (1 / \epsilon)}$ bits to store a prefix code with expected codeword length within $\epsilon$ of the minimum. We then show that, for any constant (c > 1), it takes $\Oh{n{1 / c} \log n}$ bits to store a prefix code with expected codeword length at most $c$ times the minimum. In both cases, our data structures allow us to encode and decode any character in $\Oh{1}$ time.