0
点赞
收藏
分享

微信扫一扫

#yyds干货盘点# 哈夫曼编码

小猪肥 2022-03-27 阅读 54

若对每个字符编制相同长度的二进制码,则称为等长编码。例如,英文字符集中的26个字符可采用5位二进制位串表示,(很多学员可能会问为什么要用5位二进制表示?因为4位二进制的话,只能表示2的4次方,也就是16个字符,而2的5次方可以表示32个字符),按等长编码格式构造一个字符编码表。发送方按照编码表对信息原文进行编码后送出电文,接收方对接收到的二进制代码按每5位一组进行分割,通过查字符的编码表即可得到对应字符,实现译码。

如果要设计长度不等的编码,必须满足下面的条件:

任一字符的编码都不是另一个字符的编码的前缀,这种编码也称为前缀码。对给定的字符集D={d1,d2,…,dn}及字符的使用频率W={w1,w2,…,wn},构造其最优前缀码的方法为:以d1,d2,…,dn作为叶子结点,w1,w2,…,wn作为叶子结点的权值,构造出一棵最优二叉树,然后将树中每个结点的左分支标上0,右分支标上1,考试的时候目前默认权值小的作为左孩子,权值稍大的作为右孩子。则每个叶子结点代表的字符的编码就是从根到叶子的路径上的0、1组成的串。

举报

相关推荐

0 条评论