数据结构—基础知识:哈夫曼编码

文章目录

  • 数据结构—基础知识:哈夫曼编码
      • 哈夫曼编码的主要思想
      • 有关编码的概念
      • 哈夫曼编码满足两个性质:

数据结构—基础知识:哈夫曼编码

哈夫曼编码的主要思想

在进行数据压缩时,为了使压缩后的数据文件尽可能短,可采用不定长编码。其基本思想是:为出现次数较多的字符编以较短的编码。为确保对数据文件进行有效的压缩文件和对压缩文件进行正确的解码,可以利用哈夫曼树来设计二进制编码。

有关编码的概念

  1. 前缀编码:如果在一个编码方案中,任一个编码都不是其他任何编码的前缀(最左子串),则称编码是前缀编码。
  2. 哈夫曼编码:对一棵具有n个叶子的哈夫曼树,若对树中的每个左分支赋予0,右分支赋予1,则从根到每个叶子的路径上,各分支的赋值分别构成一个二进制串,该二进制串就称为哈夫曼编码。

哈夫曼编码满足两个性质:

性质1:哈夫曼编码是前缀编码。

性质2:哈夫曼编码是最优前缀编码。

例题:假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为7,19,2,6,32,3,21,10,试为这8个字母设计哈夫曼编码

字母编码出现频率哈夫曼编码
171100
21900
3211110
461110
53210
6311111
72101
8101101

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/664847.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Python的turtle模块实现简单的烟花效果

import turtle import random import math# 设置窗口大小 width, height 800, 600 screen turtle.Screen() screen.title("Fireworks Explosion") screen.bgcolor("black") screen.setup(width, height)# 定义烟花粒子类 class Particle(turtle.Turtle):…

当程序员买了一台新 Mac

作为一名程序员,最趁手的“兵器”那还得是 MBP,有了一台新的 MBP 之后,肯定是要安装一大堆软件或工具的,把电脑装扮成自己喜欢的样子。 正好最近入手了一台新电脑,把安装软件的过程记录下来,下次再需要装环…

STM32控制DHT11温湿度传感器模块获取温湿度数据

时间记录:2024/1/29 一、DHT11引脚介绍 (1)VCC:电源引脚,3.3-5.5V (2)DATA:数据输入输出引脚 (3)NC:保留引脚,悬空即可 (…

颐和园龙纹珍宝展亮相,文物预防保护科技护航

在皇家园林颐和园的深处,一场独特的文化盛宴正静静上演。2月1日,“祥龙贺岁—颐和园藏龙纹题材文物特展”在德和园华丽揭幕。此次特展汇聚了66件珍贵文物,包括玉器、瓷器、书画、珐琅、家具等,每一件都是颐和园园藏的瑰宝。这些文…

Flink SQL Client 安装各类 Connector、组件的方法汇总(持续更新中....)

一般来说,在 Flink SQL Client 中使用各种 Connector 只需要该 Connector 及其依赖 Jar 包部署到 ${FLINK_HOME}/lib 下即可。但是对于某些特定的平台,如果 AWS EMR、Cloudera CDP 等产品会有所不同,主要是它们中的某些 Jar 包可能被改写过&a…

【Wireshark教程】流量分析,使用Wireshark寻找主机信息

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步…

力扣labuladong一刷day72天动态规划

力扣labuladong一刷day72天动态规划 文章目录 力扣labuladong一刷day72天动态规划一、343. 整数拆分二、96.不同的二叉搜索树 一、343. 整数拆分 题目链接:https://leetcode.cn/problems/integer-break/description/ 思路:本题为整数拆分,可…

clickhouse如何清除多个分区数据 alter table drop partition操作

官网drop partition操作 官网链接:https://clickhouse.com/docs/zh/sql-reference/statements/alter/partition#drop-partitionpart 官网上之有清除单个分区的例子,并没有对清除多个分区的场景进行描述,之前清除分区时也是按照官网例子进行…

MySQL系统配置

MySQL系统配置 内存相关 sort_buffer_size 定义了每个线程排序缓存区的大小,当索引无法满足需要的顺序信息时会用到,执行计划中出现using filesort,MySQL在有查询、需要做排序操作时才会为每个缓冲区分配内存(直接分配该参数的全部…

在 PyTorch 中动态构建和更新模型

1. PyTorch 中动态构建和更新模型 在 PyTorch 中,动态构建和更新模型是其核心特性之一。这意味着开发者无需预先定义完整的计算图,而是在运行时根据需要构建神经网络结构,并可以随时修改模型参数、添加或删除网络层等。这种动态图机制为研…

【AudioPolicy To AudioHAL笔记(二)】AudioPolicyAudioFliger To AudioHAL

/*****************************************************************************************************************/ 声明: 本博客内容均由https://blog.csdn.net/weixin_47702410原创,转载or引用请注明出处,谢谢! 创作不易,如果文章…

【Python】【完整代码】解析Excel文件内容,按每列首行元素名打印出某个字符串的统计占比(超详细)

目录 1.示例: 1.1 实现代码1:列数为常量 运行结果: 1.2 实现代码2:列数为变量 运行结果: 1.示例: 开发需求:读取Excel文件,统计第3列到第5列中每列的"False"字段占…

【新书推荐】5.1节 16位汇编语言学习环境

第五章 16位汇编学习环境 16位汇编语言的学习环境是建立在8086计算机的基础上的,我将借助于DosBox虚拟机来实现16位汇编语言学习环境的搭建。 5.1节 16位汇编语言学习环境 本节内容:16位汇编学习环境的搭建。 ■汇编语言程序设计编程调试过程&#xff1…

【React】react组件传参

【React】react组件传参 一、props:父组件向子组件传参1、将普通的参数作为props传递2、将jsx作为props传递(组件插槽) 二、自定义事件:子父组件向父组件传参三、context进行多级组件传参四、redux全局状态管理 一、props&#xf…

MySQL篇----第四篇

系列文章目录 文章目录 系列文章目录前言一、数据库的三范式是什么二、第一范式(1st NF - 列都是不可再分)三、第二范式(2nd NF- 每个表只描述一件事情)四、第三范式(3rd NF- 不存在对非主键列的传递依赖)五、数据库是事务前言 前些天发现了一个巨牛的人工智能学习网站,通…

C++迷宫游戏详解

个人主页:[PingdiGuo_guo] 收录专栏:[C干货专栏] 大家好呀,我是PingdiGuo_guo,今天我们来学习用C实现一个迷宫游戏。 目录 1.迷宫的具体步骤 1.1.迷宫的初始化 1.2.寻路算法 1.DFS算法 2.BFS算法 1.3.移动 2.总结 C迷宫游…

Javascript入门:第三个知识点:javascript里的数据类型、运算符

数字类型 123 //整数 123.1 //浮点数 1.123e3 //科学计数法 -10 //负数 NaN //not a number Infinity //无限大 以上的类型在javascript里都是数字类型 字符串类型 在开始之前,我需要先说明白两个知识点: console.log()是啥? let 与 v…

【C++初阶】C++入门(2)

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 一、函数重载1.1 函数重载的概念1.2 函数重载的种类1.3 C支持函数重载的原理 二…

服务器常遇的响应状态码

服务器常遇的响应状态码 状态码 500 表示服务器内部错误。 这种状态码意味着服务器在尝试执行请求时遇到了意外情况。在处理这种状态码时,我们需要联系服务器管理员或服务提供商以获取更多信息。 处理方法:联系服务器管理员或服务提供商以获取更多信息…

Ubuntu中rosdep update报错的解决办法

1.问题: Ubuntu22.04系统下面,rosdep update总是报错 2.方法 2.1 方法一 a.直接访问raw.githubusercontent.com不可行,按一下网址查询raw.githubusercontent.com的ip地址 多个地点ping[raw.githubusercontent.com]服务器-网站测速-站长工…