哈夫曼编码理解

2024-01-08 12:34:01

今天学到了哈夫曼编码,简单理解记忆一下。
举个例子:
这里有个文本

aaaabbbcce

其中a出现的概率为0.4,b为0.3,c为0.2,d为0.1
首先我们先定义两个规则:
1.上支路为0,下支路为1
2.概率相等时,合并过的概率在上支路
在这里插入图片描述

好,我们开始合并,首先从最小的两个开始

1.d和c合并,值为0.3.因为d(0.1)比c(0.2)小,所以合并时候c在d上面,为上支路。根据我们之前定义的规则上支路为0,下支路为1。c首位编码为0,d首位编码为1
2.cd(0.3)和b(0.3合并)。两个概率相等,根据之前定义的规则概率相等时,合并过的概率在上支路,所以cd(0.3)在上支路,b(0.3)在下支路。现在得出cd的第二位编码为0,b的首位编码为1。
3.bcd(0.6)和a(0.4)合并。bcd为上支路,a为下支路。cd第三位编码为0,b第二位编码为0,a首位编码为1
最终结果
a 1
b 01
c 000
d 001

           abdc
         0/    \1
      bdc(0.6)   a(0.4)
      0/    \1
   dc(0.3)  b(0.3)
   0/   \1
 c(0.2) d(0.1)

文章来源:https://blog.csdn.net/weixin_42094764/article/details/135451632
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。