哈夫曼编码是一种字符编码方式,是可变长编码的一种,1952年提出,依据字符在文件中出现的频率来建立一个用0,1
串表示各字符,使平均每个字符的码长最短的最优表现形式。
应用于图像压缩和大容量存储
为了正确解码,可变长编码必须满足,二元前缀码的性质:任何字符的代码都不能作为其他字符代码的前缀
非前缀码的例子
a:001, b:00,c:010,d:01
解码的歧义,例如字符串0100001
解码1:01,00,001 d, b, a
解码2:010,00,01 c,b,d
n-1
次的“合并”运算后构造出最终所要求的树,即哈夫曼树,它的核心思想是让权值大的叶子离根最近对下图 a、b、c、d、e、f 六个字符进行哈夫曼编码
第一次:
下一步:
下一步:
下一步:
下一步:
一共2n-1个节点,合并了n-1次
最终结果:
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq_45464560/article/details/124295271
内容来源于网络,如有侵权,请联系作者删除!