哈夫曼编码和译码怎么算?哈夫曼编码和二进制编码优缺点比较?
哈夫曼编码和译码怎么算?
哈夫曼编码和译码是一种常用的数据压缩算法。编码过程首先进行字符频率统计,然后构建哈夫曼树,依据字符频率构建编码表。
编码表中给出了不同字符对应的二进制编码,频率越高的字符的编码越短,从而实现对原数据的压缩。
哈夫曼编码和二进制编码优缺点比较?
依据字符出现频率构建的带权重二叉树确定每个字符编码的。首先我们统计“alibaba”各个字符出现频率:a-3,b-2,l-1,i-1。由出现的频率我们有以下哈夫曼二叉树:对应每个字符编码为:所以最终“alibaba”整个字符串的编码为0 100 101 11 0 11 0。也就是说该字符串二进制哈夫曼编码位数为13位。
哈夫曼总码数和哈夫曼总编码长度?
先统计一下每个字母的出现的次数 t:2 h:1 i: 4 s:3 _:4 a:2 n:2 d:1 e:1 l:1 r:1 g:
1 然后构造哈夫曼树 23 / \ 15 8 / \ / \ 7 8 i4 _4 / \ / \ s3 4 4 4 / \ / \ / \ 2 2 2 t2 a2 n2 / \ / \ / \ h1 d1 e1 l1 r1 g1 所以对应的所有叶子结点的路径长度 * 出现次数 之和便是总编码长度 WPL = 3 * 3 + 5* (1+1+1+1+1+1) + 4*(2+2+2) + 2*(4 + 4) = 79
0