0
点赞
收藏
分享

微信扫一扫

Haffman编码

一天清晨 2022-03-11 阅读 12

表格

项目成绩百分比
A不及格10%
B及格15%
C30%
D40%
E50%

1
在这个树1或者树2里,百分比数值叫权值
类似结点D,E等叫带权结点(Weight)
类似树里的边(60->70->80->90->E)叫带权路径
WPL:整棵树的带权路径长度。
树①: 10 × 1 + 15 × 2 + 30 × 3 + 40 × 4 + 5 × 4 = 310 10×1+ 15×2+30×3+40×4+5×4=310 10×1+15×2+30×3+40×4+5×4=310
树②:$10×3+15×3+30×2+40×2+5×2=225 $。

Haffman构造方法

  1. 将所有带权结点,按照从权值大小进行从小到大的排序
  2. 在排好序的序列中,拿出前两个最小的,由二者构成一个新结点
  3. 将构成的新结点,放到序列中,重新排序
  4. 重复步骤2 步骤3,直到把结点放完为止(剩一个结点)
    **ps:**按照左小右大的规则放置结点,也可以左大右小,只要定下来,剩下结点放置必须遵守
    2
    设最终的树为③
    树③的WPL: 10 × 4 + 15 × 3 + 30 × 2 = 40 × 1 + 5 × 4 = 205 10×4+15×3+30×2=40×1+5×4=205 10×4+15×3+30×2=40×1+5×4=205

Haffman编码优化

若要发送一串形如ABCCCDFEE…的编码,用Haffman编码优化最优
根据上一知识点,构成树③每个分枝左0右1,如上图,
即得A:1101,B:111,C:10,D:0,E:1100,此时没有一个编码是其他编码的前缀,不会产生歧义。

举报

相关推荐

ASCII编码与UTF-8编码

0 条评论