霍夫曼算法中二进制编码的长度?

Length of binary encoding in Huffman algorithm?

使用霍夫曼编码时出现的最长二进制编码的长度是多少 权重为 10、10、10、10、15、15、50 的算法?

有没有一种快速的方法可以做到这一点,还是我必须构建树然后计算平均位数,我猜应该是:

=总长度/位数

这是我生成的树:

使用霍夫曼算法时出现的最长二进制编码的长度等于树的高度,在本例中为4。因此最长长度为4。

很容易看出,当你将0分配给左分支,将1分配给右分支(也可以反过来)时,代码为:

50: 0

10: 1000

10: 1001

10: 1010

10: 1011

15: 110

15: 111