为什么我们不使用简单的二进制值来压缩数据

Why don't we use simple binary values to compress data

在霍夫曼算法中,我们形成一棵树,然后用树值 1 和 0 替换每个字符,为什么我们不简单地使用二进制数字,如 a=0,b=1,c=10,d=01,e=11 等等,而不是用字符和解压缩时应用反向并用字母替换二进制数字。

像这样:

character Huffman-code binary-code
a            00            0
b            01            1
c            101           01

等等...

霍夫曼码的重要条件是没有两个是彼此的前缀。如果你只是对它们重新编号(我认为这就是你的建议),你会失去这个 属性.

要了解为什么会中断,请查看“01”作为输出。在非霍夫曼版本中,它可能是“0”后跟“1”(因此 "ab"),或者是“01”(因此 "c"),你无法分辨是哪个。