当前位置: 首页 > news >正文

泰安手机网站建设电话肇庆自助网站建设系统

泰安手机网站建设电话,肇庆自助网站建设系统,赣州信息港人才频道,wordpress用户注册怎么设置哈夫曼编码一般用来对字符串进行编码格式的表示。其中要克服的最大问题,莫过于就是一串由0或者1组成的编码,你无法区分哪些01组成的编码部分是属于哪些字符的,因此哈夫曼编码的出现解决了这个问题。 在介绍哈夫曼编码之前,先介绍…

哈夫曼编码一般用来对字符串进行编码格式的表示。其中要克服的最大问题,莫过于就是一串由0或者1组成的编码,你无法区分哪些01组成的编码部分是属于哪些字符的,因此哈夫曼编码的出现解决了这个问题。

在介绍哈夫曼编码之前,先介绍以下哈夫曼树:

哈夫曼树(Huffman Tree),又称最优二叉树,是一种带权路径长度最短的二叉树,由美国数学家大卫·哈夫曼(David A. Huffman)在1952年提出。以下从基本概念、构建过程和应用场景等方面进行介绍:

  • 基本概念

    • 路径和路径长度:在一棵树中,从一个结点到另一个结点所经过的分支序列称为路径,路径上的分支数目称为路径长度。

    • 结点的权和带权路径长度:若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。结点的带权路径长度为从根结点到该结点的路径长度与该结点权值的乘积。

    • 树的带权路径长度:树中所有叶子结点的带权路径长度之和,记为WPL。哈夫曼树就是WPL最小的二叉树。

  • 构建过程

    • 假设有n个权值,将这些权值看成是有n棵树的森林(每棵树仅有一个结点)。

    • 从森林中选出根结点权值最小的两棵树作为左右子树构造一棵新的二叉树,新二叉树的根结点权值为其左右子树根结点权值之和。

    • 从森林中删除这两棵树,同时将新得到的二叉树加入森林中。

    • 重复上述步骤,直到森林中只剩下一棵树为止,这棵树就是哈夫曼树。

  • 特点

    • 哈夫曼树是一棵二叉树,且所有的非叶子结点都有两个子树,不存在度为1的结点。

    • 权值越大的叶子结点越靠近根结点,而权值越小的叶子结点越远离根结点。

  • 应用场景

    • 数据压缩:哈夫曼编码是一种常用的无损数据压缩算法。通过对数据中不同字符出现的频率进行统计,构造哈夫曼树,为每个字符分配一个唯一的二进制编码,频率高的字符编码短,频率低的字符编码长,从而实现数据的压缩。

    • 信息检索:在一些需要快速检索的数据结构中,可以利用哈夫曼树的思想来优化查找过程,提高查找效率。

    • 霍夫曼编码:在通信领域,用于构造一种编码方式,使得通信中传输的数据量最小,提高信道的利用率。

通过应用场景我们可以发现哈夫曼树就是主要实现单个字符唯一编码的功能。

我们来用举例的方法来讲解哈夫曼树:

一句话:

        i like bananas

    • 在句子“i like bananas”中,统计每个字母的出现次数如下:

      • a:3

      • b:1

      • i:2

      • k:1

      • l:1

      • n:2

      • s:1

      • 空格:2

      • e:1

然后开始搭建哈夫曼树:

  1. 初始节点(叶子节点):

    • 节点 a,权重(出现次数)为 3

    • 节点 b,权重为 1

    • 节点 i,权重为 2

    • 节点 k,权重为 1

    • 节点 l,权重为 1

    • 节点 n,权重为 2

    • 节点 s,权重为 1

    • 节点 e,权重为 1

  2. 第一次合并:

    • 取出权重最小的 b(权重 1)和 k(权重 1),创建新节点 N1,权重为 1 + 1 = 2 。

    • N1 的左子节点为 b,右子节点为 k

    • 此时节点情况:

      • 节点 a,权重 3

      • 节点 i,权重 2

      • 节点 l,权重 1

      • 节点 n,权重 2

      • 节点 s,权重 1

      • 节点 e,权重 1

      • 节点 N1,权重 2

  3. 第二次合并:

    • 取出权重最小的 l(权重 1)和 s(权重 1),创建新节点 N2,权重为 1 + 1 = 2 。

    • N2 的左子节点为 l,右子节点为 s

    • 此时节点情况:

      • 节点 a,权重 3

      • 节点 i,权重 2

      • 节点 n,权重 2

      • 节点 e,权重 1

      • 节点 N1,权重 2

      • 节点 N2,权重 2

  4. 第三次合并:

    • 取出权重最小的 e(权重 1)和 N1(权重 2),创建新节点 N3,权重为 1 + 2 = 3 。

    • N3 的左子节点为 e,右子节点为 N1

    • 此时节点情况:

      • 节点 a,权重 3

      • 节点 i,权重 2

      • 节点 n,权重 2

      • 节点 N2,权重 2

      • 节点 N3,权重 3

  5. 第四次合并:

    • 取出权重最小的 i(权重 2)和 N2(权重 2),创建新节点 N4,权重为 2 + 2 = 4 。

    • N4 的左子节点为 i,右子节点为 N2

    • 此时节点情况:

      • 节点 a,权重 3

      • 节点 n,权重 2

      • 节点 N3,权重 3

      • 节点 N4,权重 4

  6. 第五次合并:

    • 取出权重最小的 a(权重 3)和 N3(权重 3),创建新节点 N5,权重为 3 + 3 = 6 。

    • N5 的左子节点为 a,右子节点为 N3

    • 此时节点情况:

      • 节点 n,权重 2

      • 节点 N4,权重 4

      • 节点 N5,权重 6

  7. 第六次合并:

    • 取出权重最小的 n(权重 2)和 N4(权重 4),创建新节点 N6,权重为 2 + 4 = 6 。

    • N6 的左子节点为 n,右子节点为 N4

    • 此时节点情况:

      • 节点 N5,权重 6

      • 节点 N6,权重 6

  8. 第七次合并:

    • 取出 N5(权重 6)和 N6(权重 6),创建新节点 Root(根节点),权重为 6 + 6 = 12 。

    • Root 的左子节点为 N5,右子节点为 N6

通过上述步骤我们得到了哈夫曼树:

然后我们将向左移动的路径设置为0,向右的为1

我们的哈夫曼树就变为:

有了哈夫曼树,我们的哈夫曼编码也就得到了,每个字符的编码就为从根路径到指定字符的叶子节点:

  • a:出现次数为 3,编码是 00

  • n:出现次数为 2,编码是 100

  • i:出现次数为 2,编码是 110

  • 空:出现次数为 2,编码是 111

  • l:出现次数为 1,编码是 0110

  • k:出现次数为 1,编码是 1011

  • e:出现次数为 1,编码是 0111

  • b:出现次数为 1,编码是 010

  • s:出现次数为 1,编码是 1010

http://www.dtcms.com/a/570069.html

相关文章:

  • 基于Vue的地铁综合服务管理系统7949eg04(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 房产网站建设接单如何在手机上做微电影网站
  • Oracle AWR管理与快照操作完整指南
  • 济源专业做网站公司又拍云WordPress 插件
  • 蓝色风格网站网站案例上海
  • 如何在 MySQL Server 中配置 SSL 证书 ?
  • UGUI笔记——3D坐标转换成UGUI坐标
  • 2025 | 时序预测新范式:多智能体AI系统实现全流程自动化!
  • 营销型网站建设模板郴州网络科技有限公司
  • 网站服务器如何做热备价网络公司排名前十名有哪些
  • 视频转图片工具
  • 长春网站建设方案优化网络规划设计师教程第二版电子版
  • 怎样建商业网站wordpress升级机制
  • CANN算子开发实战:从动态Shape到测试验证的深度解析
  • re一下--day8--字符串(一)
  • 网站关键词在哪里修改网站建设80hoe
  • 企业数据服务新选择:“五度易链” SaaS/API/ 本地化部署方案适配全规模需求
  • 【JUnit实战3_27】第十六章:用 JUnit 测试 Spring 应用:通过实战案例深入理解 IoC 原理
  • 网站源码模板免费网站服务器2020
  • ftp怎么连接网站空间如何建立外贸网站
  • 不同防滑设计在复杂牙拔除中的效能评估
  • 基于springboot的精准扶贫管理系统开发与设计
  • 电子学会青少年软件编程(C/C++)5级等级考试真题试卷(2025年9月)
  • linux系统rsync文件传输
  • 服务器建站用哪个系统好新闻稿件
  • 基于51单片机的宠物喂食器的设计与实现(论文+源码)
  • 建设网站入不入无形资产云南建设厅网站监理员培训
  • 佛山企业网站建设制作网页案例
  • Maven基础(二)
  • Java大厂面试真题:Spring Boot+微服务+AI智能客服三轮技术拷问实录(四)