本文共 502 字,大约阅读时间需要 1 分钟。
压缩算法顾名思义就是将大的文件压缩成小的文件
本文介绍一下常见的压缩算法—哈夫曼编码哈夫曼编码
介绍之前得先了解两个基本的概念 哈夫曼树:哈夫曼树是一颗带权二叉树,且各节点得权值和最小 比如一串字符串以及他们得编码如下 编码:a:111 b:000 c:101 d:010 字符串:abacddd 编码后:111000111101010010010 长27哈夫曼在编码的时候使用01
统计各个字符出现的次数,出现最多的就将它的位置放在最上面,这样编码下来就可以最大的节约空间,同时只有叶子节点才放字符,字符出现次数相同的放同一级,至于为什么是这样的结构请自行百度 根节点的0不需要 编码:d:0 a:10 b:110 c:111 编码后为:1011010111000 长度:13 可以看出节省的非常多使用这种编码就可以极大的节省存储空间有的人就想问了这种不固定长度的编码会不会导致编码的干扰,这个编码的部分被判定到其他的部分中去了?
很明显不会
注意看这颗树,这个编码的前缀都是唯一确定的发现了吗,是没有重复的,前缀没有重复的就不会有干扰,一定会匹配到唯一的前缀
代码实现后补
转载地址:http://phrwi.baihongyu.com/