霍夫曼树简介

背景

对于文本”BADCADFEED”的传输而言,因为重复出现的只有
”ABCDEF”这6个字符,因此可以用下面的方式编码:

这里写图片描述

接收方可以根据每3个bit进行一次字符解码的方式还原文本信息。但这样的编码方式需要30个bit位才能表示10个字符
那么当传输一篇500个字符的情报时,需要15000个bit位
在战争年代,这种编码方式对于情报的发送和接受是很低效且容易出错的。

如何提高收发效率?
要提高效率,必然要从编码方式的改进入手,要避免每个字符都占用相同的bit位

这里写图片描述

准则:任一字符的编码都不是另一个字符编码的前缀!

构建过程

1.给定n个数值{ v1, v2, …, vn}
2.根据这n个数值构造二叉树集合F
F = { T1, T2, …, Tn}
Ti的数据域为vi,左右子树为空
3.在F中选取两棵根结点的值最小的树作为左右子树构造一棵新的二叉树,这棵二叉树的根结点中的值为左右子树根结点中的值之和
4.在F中删除这两棵子树,并将构造的新二叉树加入F中
5.重复3和4,直到F中只剩下一个树为止。这棵树即霍夫曼树

示例

假设经过统计ABCDEF在需要传输的报文中出现的概率如下

这里写图片描述

这里写图片描述

  • 霍夫曼树是一种特殊的二叉树
  • 霍夫曼树应用于信息编码和数据压缩领域
  • 霍夫曼树是现代压缩算法的基础
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值