美文网首页
补充知识-2-霍夫曼树与霍夫曼编码

补充知识-2-霍夫曼树与霍夫曼编码

作者: 曦宝 | 来源:发表于2021-07-07 20:37 被阅读0次

1、前言:

1、参考了:

https://www.cnblogs.com/pinard/p/7160330.html

2、真的前言

前面在复习fasttext和word2vec的时候都提到了层次softmax,而层次softmax是建立在霍夫曼树的基础上的,所以下面简单复习一下霍夫曼树。

2、正经的:

霍夫曼树的建立过程:

1、输入:权重为(w1,w2,...,wn)的n个节点
2、输出就是对应的霍夫曼树
3、将(w1,w2,...,wn)看做是有n棵树的森林,每棵树只有一个节点
4、找森林中权重最小的两棵树,将他们合并,组成一个新的树,左右子树就是这两棵树,根节点就是这棵树的权重之和。
5、将刚才已经合并的两棵树,从整个森林中删掉。再把4中得到的合成的新树加入整个森林
6、重复4和5直至森林中就剩下一棵树为止,得到的这棵树就是霍夫曼树。
7、举例:假设我们有(a,b,c,d,e,f)共6个节点,节点的权值分布是(20,4,8,6,16,3)


丑图

什么是霍夫曼编码?

对每个字符设计不同的编码,让出现较多的字符,采用尽可能短的编码,利用霍夫曼树生成的二进制编码,叫霍夫曼编码。
对于路径上的各个分支,左子树的分支用0表示,右子树的分支用1表示。


image.png

相关文章

  • 补充知识-2-霍夫曼树与霍夫曼编码

    1、前言: 1、参考了: https://www.cnblogs.com/pinard/p/7160330.htm...

  • 霍夫曼编码

    概念 霍夫曼编码(Huffman Coding),又译为哈夫曼编码、赫夫曼编码,是一种用于无损数据压缩的熵编码(权...

  • 霍夫曼编码

    问题: 请设计一个算法,给一个字符串进行二进制编码,使得编码后字符串的长度最短 思路:使用霍夫曼编码构造字符串编码...

  • 霍夫曼树

    经常用的地方:压缩算法由来:比如10个学生,<60分的4个,>=60 的6个。A:if(score<60) {a=...

  • 数据结构之「霍夫曼树」

    霍夫曼树 霍夫曼树 是由美国计算机科学家大卫·霍夫曼(David Albert Huffman)(又译为哈夫曼、赫...

  • 哈夫曼树

    戴维·哈夫曼【David Huffman】 著名的“霍夫曼编码”的发明人戴维.霍夫曼 (David Albert ...

  • 第十六讲 数据结构之二叉树(四)

    霍夫曼树 霍夫曼树是二叉树的一种特殊形式,又称为最优二叉树,其主要作用在于数据压缩和编码长度的优化。 重要概念 路...

  • 二叉树之--霍夫曼树和霍夫曼编码

    二叉树的一种特殊的数是霍夫曼树:霍夫曼树是基于权重的。比如数组T,和权重W(或者概率W)T[a,d,g,b,y,h...

  • 霍夫曼(Huffman)编码

    一、定义 霍夫曼(Huffman)编码是一种编码方式,主要用于数据文件的压缩。它的主要思想是放弃文本文件的普通保存...

  • 构造霍夫曼编码

    最终结果如下:

网友评论

      本文标题:补充知识-2-霍夫曼树与霍夫曼编码

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