哈夫曼树定义与原理

哈夫曼树定义与原理

image
image
image

图上两棵二叉树可以简化为叶子结点带权的二叉树,A表示不及格、B表示及格、C表示
中等、D表示良好、E表示优秀。每个叶子的分支线上的数字就是成绩所占比例。

image

  • 路径长度:树中一个结点到另一个结点之间的分支构成两个结点之间的路径,路径上的分支数目称做路径长度。
  • 树的路径长度:从树根到每一结点的路径长度之和。
  • a树的路径长度:1+1+2+2+3+3+4+4 = 20
  • b树的路径长度:1+2+3+3+2+1+2+2 = 16
  • 结点的带权路径长度:该结点到树根之间的路径长度与结点上权的乘积。
  • 树的带权路径长度:树中所有叶子结点的带权路径长度之和。用WPL表示

带权路径长度WPL最小的二叉树称做哈夫曼树,也叫最优二叉树。

  • a树WPL:315
  • b树WPL:220
  • 上述结果意味着:10000个学生,a树需要31500次比较,b树只需要22000次比较,少了三分之一的量,性能明显提升。

如何构造哈夫曼树

image
image

上图虽然是哈夫曼树,但是每次判断需要比较两次。比如根结点(T < 80 && T >= 70 )效率上不如下图的高:
image

哈夫曼编码

image
如上,数据被压缩了,节约了大约17%的存储或传输成本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值