后端知识点:哈夫曼编码

在这里插入图片描述

前置条件

什么是字符?

字符就是计算机中数据的表现形式。象数字,汉字,字母都是字符。在计算机中,对非数值的文字和其他符号进行处理时,要对文字和符号进行数字化,即用二进制编码来表示文字和符号。其中西文字符最常用到的编码方案有ASCII编码和EBCDIC编码。对于汉字,我国也制定的相应的编码方案-国家标准汉字编码(GB2312-80)。

常见编码方式

  • ASCII编码

ASCII码由7位二进制数组成,能够表示128个字符数据。

  • ANSI编码和其他扩展的ASCII码

ANSI(美国国家标准协会)编码是一种扩展的ASCII码,使用8个比特来表示每个符号。

  • EBCDIC编码

在IBM System/360计算机中,IBM研制了自己的8位字符编码——EBCDIC码(Extended Binary Coded Decimal Interchange Code,扩展的二-十进制交换码)。该编码是对早期的BCDIC 6位编码的扩展,其中一个字符的EBCDIC码占用一个字节,用8位二进制码表示信息,一共可以表示出256 种字符。

  • Unicode编码

ASCII码是7位编码,Unicode采用16位编码,每一个字符需要2个字节。这意味着Unicode的字符编码范围从0000h~FFFFh,可以表示65536个不同字符。

  • 国家标准汉字编码(GB2312-80)

国家标准汉字编码简称国标码。该编码集的全称是“信息交换用汉字编码字符—基本集”,国家标准号是“GB2312-80”。该编码的主要用途是作为汉字信息交换码使用。

  • 其他汉字编码

Big5汉字编码

什么是哈夫曼编码

“哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。”

这个哈夫曼编码实现的原理跟一种特殊的数据结构 “哈夫曼树”有观,也被称为最优二叉树。想了解同学可以看下B+树真的不难,楼下菜大爷都能学得会的B+树!,里面有各种树的解释,看了之后再去看最优二叉树就比较好理解了。

哈夫曼编码的算法是查找最优路径的一种算法,首先在所有未分配parent域的节点中找出最小的两个节点,将他们的全值相加,组成新的节点,并且将它标记为原来两个最小节点的parent。这样调用递归,最后就能够成一颗完整的哈夫曼树。然后对 每个节点进行遍历编码,得到最终的哈夫曼编码库

哈夫曼编码的应用

哈夫曼编码,主要用途是实现数据压缩。

致谢

哈夫曼编码
计算机中字符的表示
哈夫曼编码原理详解及应用实例,哈夫曼编码算法流程图 - 全文

  • 50
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜菜bu菜

夏日炎炎 有你超甜

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值