赫夫曼编码图解

赫夫曼编码是一种基于频率的可变字长编码,常用于数据压缩。通过构建赫夫曼树,将出现频率低的字符放在树的底层,以实现高效的数据压缩。在构建过程中,不断合并频率最小的节点,直到所有字符形成一颗树,从而得到每个字符的01编码。在实际应用中,这种编码方法可以提供20%~90%的压缩率。
摘要由CSDN通过智能技术生成

基本介绍

  1. 赫夫曼编码也翻译为 哈弗曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,属于一种程序算法
  2. 赫夫曼编码是赫夫曼树在电讯通信中的经典应用之一
  3. 赫夫曼编码广泛地用于数据文件压缩,其压缩率通常在20%~90%之间
  4. 赫夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出的一种编码方式,称之为最佳编码

思想图解

  • 赫夫曼编码的目的是数据压缩,加密解密,将出现频率低的放在二叉树的最下面一层,从而使频率高的能被更快地找到,实现数据压缩的功能
  • 假设字符a,b,c,d,e对应出现的频率为4, 6, 11, 13, 15
  • 主要编码过程
  1. 将字符按出现频率排好序
  2. 先取两个最小(a,b)作为一个新节点n1的两个子节点,相对较小的是左子树,新节点的频率就是a,b两个频率的相加,即4+6=10,然后将新节点n1替换a,b插入有序序列,整个序列就是{n1,c,d,e}
  3. 然后再取出最小的两个节点(n1,c),产生的新节点n2的频率10+11=21,继续替换n1,c插入有序序列,{d,e,n2}
  4. 然后再取最小的两个节点(d,e),产生的新节点n3的频率为13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值