1. 原理

壓縮

LZ78算法的壓縮過程非常簡單。在壓縮時維護一個動態(tài)詞典Dictionary,其包括了歷史字符串的index與內(nèi)容;壓縮情況分為三種:

  1. 若當前字符c未出現(xiàn)在詞典中,則編碼為(0, c);

  2. 若當前字符c出現(xiàn)在詞典中,則與詞典做最長匹配,然后編碼為(prefixIndex,lastChar),其中,prefixIndex為最長匹配的前綴字符串,lastChar為最長匹配后的第一個字符;

  3. 為對最后一個字符的特殊處理,編碼為(prefixIndex,)。

如果對于上述壓縮的過程稍感費解,下面給出三個例子。例子一,對于字符串“ABBCBCABABCAABCAAB”壓縮編碼過程如下:

網(wǎng)友評論