参加了编程大赛,实现对文件的压缩,本人选择了java实现。 通过大量的知识资源搜索,总结自己了解的五种压缩算法:LZSS(字典算法)、LZW(串表压缩算法)、Hfm(霍夫曼压算法)、LZ77(滑动窗口算法)、LZAM(数据压缩算法)。 有兴趣的同学自己百度一下各种算法实现原理。

     自己本地项目把5种算法都跑了起来(idea工具,jkd1.8,解压直接可用),对.png图片文件和2个txt大文件进行压缩和解压,得到的压缩率如下(LZAM压缩算法最优,是7Z压缩使用的算法):

算法压缩率png图片txt文件1txt文件2
LZSS(字典算法)0.88030.50460.5468
LZW(串表压缩算法)0.86770.480.653
Hfm(霍夫曼压算法)0.73090.56720.7233
LZ77(滑动窗口算法)4.0912.54762.9278
LZAM(数据压缩算法)0.5730450.2851890.319269

5种算法java源码,解压直接可以在main方法里调试 五种压缩算法JAVA源码

更多推荐