第一次写算法,LZ编码~
2008年3月23日
学了lz编码,老师课上随便一说,有兴趣的写个程序实现一下。弄了几天,终于搞出来这么个东西。。。
一共做了4个版本,刚开始只做了压缩,后来做完解压发现压缩的文件写入部分有问题,改了第一次。
试验较大文件时发现字典大小不够(用short做的索引),于是改了第二次,用int做索引,并采用简单的标志来区分索引时2个字节还是4个字节。
这个东西时针对文本做的,刚开始用的String这个类的一些方法,后来发现效率一般,而且String的长度有限制。所以自己写了个MyWord类来存放字典条目,并采用迭代的方法节省空间。
这个东西原则上是可以针对任何类型的数据,但试验后发现对英文文本类数据效果比较好,类似txt,html,mdb之类的,简单的bmp也可以。其他数据有可能压出来比没压还大。。。还有就是由于字典用的hashmap这个类,大小有限制,文件太大(几十M),太复杂就会outofmemorry。。。
东西做的很粗糙,不过我现在能想到的算法就这样了。第一次写,其实也算挺成功吧,虽然和预想的还有点差距。。。
分类: 学习心情