基本介绍
- 赫夫曼编码也翻译为 哈弗曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,属于一种程序算法
- 赫夫曼编码是赫夫曼树在电讯通信中的经典应用之一
- 赫夫曼编码广泛地用于数据文件压缩,其压缩率通常在20%~90%之间
- 赫夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出的一种编码方式,称之为最佳编码
思想图解
- 赫夫曼编码的目的是数据压缩,加密解密,将出现频率低的放在二叉树的最下面一层,从而使频率高的能被更快地找到,实现数据压缩的功能
- 假设字符a,b,c,d,e对应出现的频率为4, 6, 11, 13, 15
- 主要编码过程
- 将字符按出现频率排好序
- 先取两个最小(a,b)作为一个新节点n1的两个子节点,相对较小的是左子树,新节点的频率就是a,b两个频率的相加,即4+6=10,然后将新节点n1替换a,b插入有序序列,整个序列就是{n1,c,d,e}
- 然后再取出最小的两个节点(n1,c),产生的新节点n2的频率10+11=21,继续替换n1,c插入有序序列,{d,e,n2}
- 然后再取最小的两个节点(d,e),产生的新节点n3的频率为13