码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 哈夫曼树的定义、原理及哈夫曼编码


    文章目录

    • 1 哈夫曼树的定义与原理
    • 2 哈夫曼编码

    1 哈夫曼树的定义与原理

     在如今素质教育的实际学习生活中,学生的成绩在5个等级上的分布规律如下:

    image-20220909120333002.png

     采用传统方法判断学生学习等级如图所示:

    image-20220909120419529.png

     那么70分以上大约占总数80%的成绩都需要经过3次以上的判断才可以得到结果,这显然对算力具有很大的浪费。我们对这棵二叉树重新进行分配,改成如图所示的二叉树。

    image-20220909120608834.png

     我们把这棵二叉树简化成叶子结点带权的二叉树**(树结点间的边相关的树叫做权【weight】)**,如图所示,其中A表示不及格,B表示及格,C表示中等,D表示良好,E表示优秀。每个叶子的分支线上的数字就是五级分制的成绩所占的百分比。

    image-20220909120859970.png

     **从树中一个结点到另一个结点之间的分支构成两个结点之间的路径,路径上的分支数目称作路径长度。**在上图二叉树a中,根结点到结点D的路径长度就为4,第二个二叉树中根结点到结点D的路径长度为2。

     **树的路径长度就是从树根到每一结点的路径长度之和。**在上图中,我们可计算出二叉树a的路径长度为 1 + 1 + 2 + 2 + 3 + 3 + 4 + 4 = 20 1+1+2+2+3+3+4+4=20 1+1+2+2+3+3+4+4=20,二叉树b的路径长度为 1 + 2 + 3 + 3 + 2 + 1 + 2 + 2 = 16 1+2+3+3+2+1+2+2=16 1+2+3+3+2+1+2+2=16

     结点的带权的路径长度为从该结点到树根之间的路径长度与结点上权的乘积,其中带权路径长度 W P L WPL WPL最小的二叉树称做哈夫曼树。

     对上图二叉树a和b两棵树的 W P L WPL WPL值:

     二叉树a的 W P L = 5 × 1 + 15 × 2 + 40 × 3 + 30 × 4 + 10 × 4 = 315 WPL=5\times 1+15\times 2+40\times 3+30\times 4+10\times4=315 WPL=5×1+15×2+40×3+30×4+10×4=315

     二叉树b的 W P L = 5 × 3 + 15 × 3 + 40 × 2 + 30 × 2 + 10 × 2 = 220 WPL=5\times 3+15\times 3+40\times 2+30\times 2+10\times2=220 WPL

  • 相关阅读:
    java毕业设计Sneaker’sHome设计网站mybatis+源码+调试部署+系统+数据库+lw
    制作一个简单HTML游戏网页(HTML+CSS)仿龙之谷网络游戏官网
    多场景通吃,INDEMIND视觉导航方案赋能服务机器人更多可能
    借助cpolar 和大家分享有趣的照片 1 (在本地电脑上部署piwigo网页)
    uniCloud开发公众号:五、开通/配置/初始化uniPush2.0
    Ganglia python metric扩展
    Mysql 5.7开启binlog日志
    springboot中Configuration注解和Component注解功能的区别和联系?
    红队专题-Cobalt strike从小白到飞升手册
    web server apache tomcat11-11-Jasper 2 JSP Engine
  • 原文地址:https://blog.csdn.net/csdn8668/article/details/126811150
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号