94、霍夫曼树

历史上的远距通信问题

老师:最初的远距通信用于传递文本信息,主要是电报。

小A:那如何将一段文字内容为“BADCADFEED”通过网络传递给别人呢?

小B:利用二进制对这些字母进行编码,然后传输这个编码就行啊。

小D:是的,电报不就“滴”和“答”嘛?!

小A:那怎么编码呢?

小C:难道你没听说过ASCII码?

小A:那时有没有ASCII码哦?

小C:。。。

最初的解决方案

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

存在的问题

  • 这样的编码方式需要30个bit位才能表示10个字符

  • 那么当传输一篇500个字符的情报时,需要15000个bit位

在战争年代,这种编码方式对于情报的发送和接受是很低效且容易出错的。

如何提高收发效率?

另一种编码方式

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

效率提高了吗?

精妙之处

霍夫曼树

霍夫曼树的应用

构建霍夫曼树

数值较小的作为左子树,数值较大的作为右子树

两数相同,根据在表中位置确定

读的时候,左树读0,右树读1

上述循序如果反了,会影响编码,但不影响效率提高

小结

  • 霍夫曼树是一种特殊的二叉树

  • 霍夫曼树应用于信息编码数据压缩领域

  • 霍夫曼树是现代压缩算法的基础

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值