algorithm - 霍夫曼树的主张?
问题描述
我看到了以下声明:
给定Q={1,2,...,n}和正频率函数f使得:
f(1) > f(2) > ... > f(n) > f(1)/3 ,
然后在霍夫曼树的最多 3 个不同级别上有叶子。
我一直在寻找一个反例,但没有运气,有人可以帮助我吗?
解决方案
假设某棵树的声明是错误的,在深度 H 处具有最浅的叶子。最浅的叶子的频率为 f(1)。
由于树的深度至少为 H+3,因此在深度 H+1 处必须有一个至少有 3 个叶子的子树。到达 H+3 的最小可能子树的形状如下:
O
/ \
O O
/ \
O O
子树的总频率大于 f(1),即最浅叶的频率,但它发生在更深的层次。因此,我们可以通过交换这个子树和最浅叶的位置来改进霍夫曼树。
由于霍夫曼树被证明是最优的,这不可能发生,所以这个说法一定是正确的。
推荐阅读
- r - 为 R 3.6.0 安装归档包时遇到问题
- apache-spark - Spark 词法运算顺序
- angularjs - 附加到按钮控件的@scope 值未更新?MVC AngularJs
- c++ - 为什么`ofstream`在写入文件时会丢失一些行?
- angular - 套接字发出太多次,无法关闭它Angular
- php - 哪个是在 PHP 类中要求文件的最佳方法
- c++ - C++ 地图集混合
- spss - 一次为许多/所有变量编码缺失值
- amazon-web-services - AWS S3 - 为存储桶分配有限权限并创建只能访问该存储桶的 IAM
- arrays - 在 JSON 响应中返回数组的最佳格式是什么?