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

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

算法压缩率 png图片 txt文件1 txt文件2
LZSS(字典算法) 0.8803 0.5046 0.5468
LZW(串表压缩算法) 0.8677 0.48 0.653
Hfm(霍夫曼压算法) 0.7309 0.5672 0.7233
LZ77(滑动窗口算法) 4.091 2.5476 2.9278
LZAM(数据压缩算法) 0.573045 0.285189 0.319269

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

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐