历史上的远距通信问题
老师:最初的远距通信用于传递文本信息,主要是电报。
小A:那如何将一段文字内容为“BADCADFEED”通过网络传递给别人呢?
小B:利用二进制对这些字母进行编码,然后传输这个编码就行啊。
小D:是的,电报不就“滴”和“答”嘛?!
小A:那怎么编码呢?
小C:难道你没听说过ASCII码?
小A:那时有没有ASCII码哦?
小C:。。。
最初的解决方案
对于文本”BADCADFEED”的传输而言,因为重复出现的只有”ABCDEF”这6个字符,因此可以用下面的方式编码:
存在的问题
-
这样的编码方式需要30个bit位才能表示10个字符
-
那么当传输一篇500个字符的情报时,需要15000个bit位
在战争年代,这种编码方式对于情报的发送和接受是很低效且容易出错的。
如何提高收发效率?
另一种编码方式
要提高效率,必然要从编码方式的改进入手,要避免每个字符都占用相同的bit位
效率提高了吗?
精妙之处
霍夫曼树
霍夫曼树的应用
构建霍夫曼树
数值较小的作为左子树,数值较大的作为右子树
两数相同,根据在表中位置确定
读的时候,左树读0,右树读1
上述循序如果反了,会影响编码,但不影响效率提高
小结
-
霍夫曼树是一种特殊的二叉树
-
霍夫曼树应用于信息编码和数据压缩领域
-
霍夫曼树是现代压缩算法的基础