问题概述
1 二进制编码:用二进制字符0-1串来表示
2 固定长编码:每个0-1串的长度是固定的
3 可变长编码:常用短,不常用长
4 前缀编码:没有任何字符的编码是其他字符的前缀
这里需要使用树型结构.
使用字符出现的频率和字符来作为结点的内容[字符:频率]
这里给出一个例子:
[a:45],[b:13],[c,12],[d:16],[e:9],[f:5]
我们引入树T的代价
设 d T ( c ) d_T(c) dT(c)是符号c在树T的深度,即c的编码长度
f ( c ) f(c) f(c)是符号c出现的频率,在结点中保存
则T的代价是编码一个文件的所有字符的代码位数
B ( T ) = ∑ c f ( c ) ∗ d T ( c ) B(T)&