标签:des style blog http io color ar os sp
改编自下面是证明链接(英文)
http://algoviz.org/OpenDSA/Books/OpenDSA/html/HuffProof.html
====================
设buildHuff是创建哈夫曼树的函数。
引理1:给定W = {w1, w2, w3..., wn} (n >= 2), 以此集合构建相应的哈夫曼树。令wi, wj 是W中权重最小的两个元素,则这两个数对应的结点是兄弟结点,且这两结点在二叉树中的深度大小于等于其它任何一个叶结点的深度。
证明:由哈夫曼树的构建过程可知,wi, wj 所在结点是兄弟结点(在不影响阅读的前提下,以wi, wj 指代这两个结点)。假设在哈夫曼树中,wi, wj 所在结点的深度不是最深的,则哈夫曼树应似图1 样式,存在一些结点,其深度大于wi, wj 的深度。在图1中,wi, wj的父结点U的权重应大于结点X权重,否则构建哈夫曼树时,应选择V而不是X作为U的子结点。但这是不可能的,因为由假设知wi, wj是W中权重最小的两个元素。得出矛盾,问题得证。
图1 An impossible Huffman tree, showing the situation where the two nodes with least weight, wi and wj are not the deepest nodes in the tree. Triangles represent subtrees.
定理1:哈夫曼树是最优的。
证明:用归纳法证明。
(注意:哈夫曼编码是最优之一。)
标签:des style blog http io color ar os sp
原文地址:http://blog.csdn.net/bigleo/article/details/41243779