Skip to content

什么是哈夫曼树

示例

考试成级查找【示例】

图片图片

这样的效率并不是最优的,有没有更好的方法?下面我们对判断树进行优化。

图片

示例中的效率也就是,带权路径长度

定义

给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)

哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近

图片 WPL 图片

哈夫曼树构造

每次把权值最小的两棵二叉树合并,且权值最小的两棵二叉树继续与后面的数比较,选出两个最小的数重复以上操作步骤。整体复杂度为O(NlogN) 图片图片

哈夫曼数特点

图片

哈夫曼编码

图片图片

前缀码prefix code:任何字符的编码都不是另一个字符编码的前缀(可以无二意的解码)。 图片图片