美文网首页
11.赫夫曼树与赫夫曼编码

11.赫夫曼树与赫夫曼编码

作者: 芝麻酱的简书 | 来源:发表于2018-08-08 10:25 被阅读40次

给定n个权值作为n个[叶子结点],构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。

哈夫曼静态编码:它对需要编码的数据进行两遍扫描:第一遍统计原数据中各字符出现的频率,利用得到的频率值创建哈夫曼树,并必须把树的信息保存起来,即把字符0-255(28=256)的频率值以2-4BYTES的长度顺序存储起来,(用4Bytes的长度存储频率值,频率值的表示范围为0--232-1,这已足够表示大文件中字符出现的频率了)以便解压时创建同样的哈夫曼树进行解压;第二遍则根据第一遍扫描得到的哈夫曼树进行编码,并把编码后得到的码字存储起来。

哈夫曼动态编码:动态哈夫曼编码使用一棵动态变化的哈夫曼树,对第t+1个字符的编码是根据原始数据中前t个字符得到的哈夫曼树来进行的,编码和解码使用相同的初始哈夫曼树,每处理完一个字符,编码和解码使用相同的方法修改哈夫曼树,所以没有必要为解码而保存哈夫曼树的信息。编码和解码一个字符所需的时间与该字符的编码长度成正比,所以动态哈夫曼编码可实时进行

相关文章

  • 赫夫曼编码&解码

    之前说到了如何构建赫夫曼树,那么赫夫曼树有什么用呢?赫夫曼树经典的应用之一就是赫夫曼编码。 1. 赫夫曼编码是什么...

  • 赫夫曼编码对文件进行压缩与解密

    理论 赫夫曼树 先有赫夫曼树,才有赫夫曼编码。所以,首先简单介绍一下什么是赫夫曼树。 假设一共五个叶子节点,分别是...

  • 11.赫夫曼树与赫夫曼编码

    给定n个权值作为n个[叶子结点],构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为...

  • 赫夫曼树与赫夫曼编码

    赫夫曼树与赫夫曼编码 一、赫夫曼树 在数据膨胀、信息爆炸的今天,数据压缩的意义不言而喻。谈到数据压缩,就不能不提赫...

  • 赫夫曼树和赫夫曼编码

    在数据膨胀,信息爆炸的今天,数据压缩的意义不言而喻。谈到数据压缩,就不能不提赫夫曼(Huffman)编码,赫夫曼编...

  • 赫夫曼树及赫夫曼编码

    1.前言 在1952年美国数学家发明了赫夫曼编码,当时是为了解决远距离通信(主要是电报)的数据传输最优化问题,节约...

  • Java_二叉树用途

    赫夫曼树 赫夫曼树的构造 赫夫曼树构造过程 查找二叉树

  • 哈夫曼树(赫夫曼树、最优树)及C语言实现

    from:http://data.biancheng.net/view/33.html 赫夫曼树,别名“哈夫曼树”...

  • 赫夫曼树

    赫夫曼树 Q:什么是赫夫曼树(也叫最优二叉树,有点像得到最优解的贪心法)? A:带权路径长度最小的二叉树 Q:如何...

  • 赫夫曼树

    带权路径最短的树,构建赫夫曼树的思路 排序,将最小与次小转为节点,并根据权生成父节点,将父节点加入到结合, 移除最...

网友评论

      本文标题:11.赫夫曼树与赫夫曼编码

      本文链接:https://www.haomeiwen.com/subject/hdstbftx.html