1.huffman 不解释
2.一种新的 算法LZW http://www.chinasb.org/archives/2010/12/1248.shtml
具体步骤:
①打开一个待压缩文件与存放压缩后的文件
②读入一个字节作为后缀,此字节为当前词
若当前词存在,将当前次改为编码,进入2.
若当前次不存在,编码加1(考虑编码长度有限制),输出
同样,我们还来做一个字符串 ababbacb 8个字符
第几步 |
前缀 |
后缀 |
词 |
存在对应码 |
输出 |
码 |
1 |
|
a |
(,a) |
|
|
|
2 |
a |
b |
(a,b) |
no |
a |
256 |
3 |
b |
a |
(b,a) |
no |
b |
257 |
4 |
a |
b |
(a,b) |
yes |
|
|
5 |
256 |
b |
(256,b) |
no |
256 |
258 |
6 |
b |
a |
(b,a) |
yes |
|
|
7 |
257 |
c |
(257,c) |
no |
257 |
259 |
8 |
c |
b |
(c,b) |
no |
c |
260 |
把输出来的和最后一个后缀连在一起则是:
a,b,256,257,c,b
6个字符,那么就达到了压缩的目的。
对应生成的码表则是:
256 |
257 |
258 |
259 |
260 |
(a,b) |
(b,a) |
(256,b) |
(257,c) |
(c,b) |
原文:http://www.cnblogs.com/crazyxiazi/p/3677583.html