电商网站建设 网站定制开发代理公司注册
我的首发平台是公众号【CodeAllen】,学习交流QQ群:736386324,转载请注明出处
最基本的压缩编码方法 - 赫夫曼编码
想知道赫夫曼编码,首先要知道赫夫曼树:
赫夫曼在1952年发明了赫夫曼编码,为了纪念他,把他在编码中使用的特殊的二叉树称为赫夫曼树,进而引出赫夫曼编码
什么是赫夫曼树?
首先举个例子:
if( a < 60 )
printf(“不及格”);
else if( a < 70 )
printf(“及格”);
else if( a < 90 )
printf(“良好”);
else
printf(“优秀”);
变换为二叉树
这种流程判断方法效率就比较低
可以改为下发,效率就高很多
这两种方案可以简化为叶子结点带权的二叉树,树结点之前的连线相关的数叫做权(weight)
结点的路径长度:
从根结点到该结点的路径上的连接数。
树的路径长度:
树中每个叶子结点的路径长度之和。
结点带权路径长度:
结点的路径长度与结点权值的乘积。
树的带权路径长度:
WPL(Weighted Path Length)是树中所有叶子结点的带权路径长度之和。