压缩算法——lzw算法实现

本文介绍了LZW压缩算法的基本原理,通过一个字符串abcbcabcabcd的实例详细展示了压缩和解压缩的过程。压缩过程中,算法根据字符序列创建并更新字典,而解压缩则依赖于已知的码表进行解码并扩展字典。为了应用于文件压缩,文章指出需要额外实现数组队列的存储和读写操作。
摘要由CSDN通过智能技术生成

压缩算法——lzw算法实现

字典压缩的基本原理

以色列人Lempel与Ziv发现在正文流中词汇和短语很可能会重复出现。当出现一个重复时,重复的序列可以用一个短的编码来代替。

压缩程序重复扫描这样的重复,同时生成编码来代替重复序列。随着时间过去,编码可以用来捕获新的序列。算法必须设计成压缩程序能够在编码和原始数据序列推导出当前的映射。

说实话直接用文字来描述其实听起来很迷,直接看图:

è¿éåå¾çæè¿°

然后我们以字符串abcbcabcabcd为例,来模拟这个过程

首先我们先建立初始码表a= 1,b=2,c=3,d=4

step P C is PC in dic output P dictionary description
1 NULL a   初始化,不处理    
2 a b no 1 ab:5 ab不存在dictionary中,扩充
3 b c no 2 bc:6  
4 c b no 3<
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值