哈夫曼编码(理论)

哈夫曼编码是一种无损压缩文件一种方法,他的思路很简单,却又十分经典,他利用的是无重复前缀这种思想,就是每个字符的前缀是唯一的,若a的编码是001,那么就不会存在另一个以001开头的编码了,因为,哈夫曼编码是以二叉树为基础实现的,而二叉树到每一个叶子节点的路径是唯一的,那么也就是说每一个字符的编码也是唯一的。

哈夫曼编码是一种变长编码,比起定长编码的ascii码来说,哈夫曼编码能节省很多的空间,因为每一个字符出现的频率不是一致的,例如在英语中,‘e’出现的次数是最高的,那么如果我把‘e’的编码定义的短一点,那么是不是比起定长编码来说,空间就减少了?

基于这种思路,哈夫曼编码的具体实现过程如下:
(1)首先统计文本中各字符出现的频率(权重)。
(2)使用这些频率(权重),构建出哈夫曼树。
(3)规定从根节点开始,向叶子节点行走,经过左子树,编码为0,右子树,编码为1,这样就能得到每一个叶子节点字符的编码值了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 对于我们的日常操作压缩文件来说,通常都是将文件中的字符转换成压缩后的格式,但为什么能够解压回来,那是因为压缩后的数...
    Forget_ever阅读 9,708评论 0 7
  • 树的概述 树是一种非常常用的数据结构,树与前面介绍的线性表,栈,队列等线性结构不同,树是一种非线性结构 1.树的定...
    Jack921阅读 10,047评论 1 31
  • 什么是哈夫曼树(Huffman Tree)eg:将百分制的考试成绩转换为五分制的成绩if ( score < 60...
    Spicy_Crayfish阅读 6,471评论 1 1
  • 简介 哈夫曼树是一种带权路径长度最短的二叉树,也称为最优二叉树。 定义:给定 n 个权值作为 n 个叶子节点,构造...
    随时学丫阅读 8,481评论 0 1
  • 普通树与二叉树的相互转化及哈夫曼树的了解 二叉树与普通树的转化 二叉树的种种特性使得它更便于处理,如果能将普通树转...
    sunhaiyu阅读 5,600评论 0 3

友情链接更多精彩内容