- 为什么最优编码通过树实现?
- 树的层数能够与编码长度产生联系。
- 二叉树的双分支与编码的二进制对应(例如,规定向左为0,向右为1)。
- 树能够保证字符编码是前缀码。由反证法:假设a的编码是b前缀,不难推出从根节点到b的路径应为根节点到a路径的延长,此结论与哈夫曼算法中字符是叶节点相违背(叶节点为终端,其后无法延长),故假设不成立,a不为b前缀。
- 为什么最小带权路径能够保证编码最优?
平均编码长度 =,其中
为字符概率,
为字符编码长度。
带权路径长度 =,其中
为权重,
为路径长度。
权重即为字符概率
,路径长度
即为编码长度
,因此平均编码长度等于带权路径长度,即当带权路径长度最小时,平均编码长度最小,编码最优。