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

数据结构(邓俊辉)学习笔记】优先级队列 06——完全二叉堆:批量建堆

文章目录

  • 1. 自上而下的上滤:算法
  • 2. 自上而下的上滤:效率
  • 3. 自下而上的下滤:算法
  • 4. 自下而上的下滤:实例
  • 5. 自下而上的下滤:效率

1. 自上而下的上滤:算法

在介绍过完全二叉堆标准的静态和动态操作接口之后,我们接下来讨论如何批量地建造一个堆。也就说对于任给的 n 个元素,我们希望将它构建成一个堆。这样一个过程也称作Heapification。
在这里插入图片描述

在完全二叉堆模板类中,我们可以找到这样一个构造函数,其功能是以任意指定的规模为 n 的数组 a 为蓝本,将其中的元素组成一个完全二叉堆。为此我们首先需要调用向量的 copyfrom 接口,将这个数组复制到内部,而实质的操作则是调用 heapify 这个算法将这个元素调整为堆。那么这个 heapify 算法又当如何实现呢?

如果不在乎计算成本,这算不上是一个难题,甚至我们有现成的解决方案。比如这就是(上图所示)一个现成的解决方案,我们称这个方案为蛮理算法,因为它的思路是直截了当的,也就是逐个地将每一个元素通过完全二叉堆标准的 insert() 接口插入其中。

比如一种相对更为紧凑的实现方式是这样: 为此我们只需按照层次遍历的次序,也就是自上而下、自左而右,逐一的对每一个元素做上滤处理。每经过这样一套上滤,就等效于插入了一个新节点,而当所有的节点都经过如此上滤之后,整个堆也就自然建成了。

来看一个具体的实例,考察一个由5个元素所构成的初始向量。当然这里画出的是在逻辑上与之对应的那棵完全二叉树。

  1. 我们首先来考虑根节点:作为第一个节点,它所对应的上滤是一个平凡的情况,实际上它只需原地不动,我们就可以认为已经将它作为第一个元素插入了这个堆。也就是说,我们直接就得到了一个元素构成的堆。正因为这一部并没有任何实质的动作,因此我们不妨将其忽略掉,而直接从编号为 1 的元素开始。在我们的图中,也就是这个灰色的节点。相对于当前的堆,这个节点恰好就是末元素。因此根据我们此前的插入算法,在对它进行一次上滤调整之后,就可以顺利地将它插入到堆中,于是我们就可以得到一个规模为2的堆。
  2. 再接下来需要考察2号,也就是这个灰色的节点(上图下排倒数右二)。同样地,相对于当前的堆,它也恰好是末元素。因此我们也只需对它做一趟上滤,即可将它插入到当前的堆中。于是这个堆的规模又将从2拓展至3。
  3. 接下来的故事都类似,也就是我们需要进而去考察编号为3的节点,并且通过一趟上滤将它插入到当前的堆中,从而使得堆的规模进而上升为4。
  4. 最后一个节点也是如此,我们也只需对它做一趟上滤,就可将它插入到当前这个堆中。
  5. 从而最终得到一个规模为5的堆。

从逐一插入各节点的角度来看,这个算法平淡无奇,其正确性也因此显而易见。那么这个简明的算法效率又如何呢?

2. 自上而下的上滤:效率

就从最坏情况的角度对上述算法的效率来做一分析。
在这里插入图片描述
回顾刚才的蛮力算法,我们需要自上而下、自左而右的处理每一个节点,而每一个节点都要相应地做一次上滤,因此我们也将这种建堆的模式称作自上而下的上滤。

不难看出,在最坏的情况下,每个节点都有可能要一直上滤至根节点,其对应的计算成本也应该线性正比于其深度,因此总体的时间成本也应该就是每一个节点深度的总和。

当然也可以精确地对此做一个计算。但实际上我们只需要对其中的部分节点进行计算就足以验证这个算法是低效的,比如我们不妨来考虑那些所有底层的叶节点。我们知道,在完全二叉树中,至少有一半节点是页节点,而且在渐进意义上它们的深度都是log(n)。

因此就大 O 记号而言,仅这部分节点所消耗的时间就会多达 n log(n)。没错,多达 n log(n)。我们认为这是一个不可接受的效率。为什么这么讲呢?应该记得,我们设计和实现优先级队列的最初动机在于,我们需要代价足够低廉,同时又能维护所有元素之间偏序关系的一种数据结构。没错,偏序。

而我们早已知道,在多达 n log(n) 的时间之内,我们完全可以对所有元素做全排序。是的,用 n log(n)的时间,得到了一个超出我们所预期的,更强的功能。因此反过来,如果我们只是满足于偏序,而无需考虑全序的话,或许应该能够指望成本更加低廉。好消息是,事实的确如此。

3. 自下而上的下滤:算法

为了得到改进的建堆算法,我们需要来考察这样一个典型的场景:
在这里插入图片描述
假设已经有了两个初始的堆,H0和 H1,而它们的堆顶 R0和 R1分别作为第三个节点 p 的左和右孩子。对于这样一种情况,在这种情况下,我们应该如何迅速地将这两个堆合并起来,从而构成一个更大的堆呢?实际上这并不是一个什么新问题,你能看得出来吗?

是的,完全二叉堆的 delMax 算法。在这个算法中,我们首先要将最大元,也就是堆顶摘除掉,并且用向量中当前的末元素来取而代之。是的,我们就来考察刚刚取而代之的那个时刻。

在那样一个时刻,难道不恰好就是我们所说的这样一个场景吗?我们来验证一下,作为此前完全二叉堆的一部分,它们依旧处处满足堆序性和结构性。因此,它们都各自成为一个堆。同时,它们也是新的这个根节点的子堆。如果你能看透这一点,也就自然可以得到相应的调整算法。

没错,我们只需套用此前 delMax 算法的后半部分。具体来说,就是对这个新的根节点做一次下滤:当然,下滤的方向可能有两个:或者沿着左路的分支一直进入到左侧的这个子堆,也可能沿着右侧的分支进入到右侧的这个子堆。

无论如何,一旦节点 p 的下滤得以完成,原先的两个子堆也自然的就完成了合并。将这种处理手法退而广之,并反复使用,我们就可以得到一个效率更高的批量建堆算法。这个算法出自于 floyd 之手,该算法处理各节点的次序与此前的蛮力算法恰好相反,也就是说,在树中应该是自下而上,自右而左逐个处理。而对于每一个节点,我们都只需做一趟下滤。 当然,对于叶子节点而言,下滤并没有实际的意义,因此这个算法只需考虑所有的内部节点。相应地,第一个接受处理的也应该是最后一个内部节点。

如果全堆的规模为 n,那么这个最末尾的内部节点在向量中所对应的秩就应该是 floor(n/2) - 1。我们刚才已经看到,对每一个内部节点实施的下滤,其实质效果等同于将左右子堆合并起来,因此这样一个自下而上,逐个下滤的过程也就等效于各子堆逐层向上合并,规模不断增加的过程。

因此最终当根节点的下滤也完成之后,所有的节点也自然地从整体上构成了一个完全二叉堆。

4. 自下而上的下滤:实例

在这里插入图片描述
来看这样一个实例,这是由9个节点所构成了一棵完全二叉树,因此在物理上的向量中,最末尾内部节点所对应的秩应该为 floor(9/2) - 1 = 3,也就是这个节点(上图节点3)。不要误解这里它的数值也为3,纯属巧合。

请注意,在初始情况下,无论如何,每一个业节点都可以认为是自成为一个子堆,因此在此局部恰好就构成了我们此前所说的那样一个典型的模式:局部的子树根以及下属的左和右两个子堆,我们的任务是将这两个子堆合二为一。

  1. 算法非常简明,为此只需对局部的子树根节点 3 做一次下滤,下滤的结果是这样:可以看到,不出意外,我们的确完成了两个子堆的合并。
  2. 接下来该轮到再往前一个的内部节点,也就是6。在此,我们又一次看到了这个典型的模式:一个局部的子树根,以及左右两个子堆,同样地,我们只需对局部子树根 6 做一次下滤,即可将此局部调整为一个更大规模的堆,就像这样(上图下左1)。
  3. 再接下来,应该轮到内部节点 1,请注意,这里依然是一个我们算法可以处理的模式:一个局部的子树根,以及左右两个待合并的子堆。依然套用现成的算法,我们只需对局部子树根1做一次下滤,即可完成局部的合并。合并的结果是这样(上图下左1)。
  4. 好,最终应该轮到全树的根节点2,此时我们依然可以看到这样一个算法可以处理的典型模式:根节点,以及左右两个待合并的子堆。对于我们的处理手法,你应该现在非常熟悉了:只需对根节点做一次下滤,即可完成整体的合并。最终的结果是这样:不出意外,我们的确得到了一个由所有元素构成的完全二叉堆。

这个算法的正确性也同样显而易见,那么它的效率究竟有多高呢?是否如我们所预期的那样,严格的优于此前的 n log(n)呢?

5. 自下而上的下滤:效率

在这里插入图片描述

纵观 Floyd 建堆算法,实质的计算成本来自于对每个节点的下滤

我们可以看到,每一个节点都会经过一系列的交换,下降一定的高度,有的下降得少一些,有的下降得多一些。就最坏情况而言,每个内部节点所下降的层次数至多不过它最初的高度,因此整个Floyd 算法的计算成本无非就是每一个节点所对应高度的总和。 经过推算不难得知,这个总和在渐进意义上无非是 O(n) ,限于时间关系,在此不妨省去详细地推导过程。而利用节省下来的这部分时间,我们不妨就时间效率将Floyd 算法和此前的蛮力算法来做一对比:这一对比既有趣,也更有意义。

应该记得蛮力算法O(n log(n) )的效率是来源于对所有节点深度的求和。 是的,这里的差异就在于究竟是对高度求和还是对深度求和。而饶有趣味的一个问题是,分别采用这样两个貌似非常接近的指标来进行求和,为什么在渐进的意义上却有巨大的差异呢?对于这一现象,你又当如何解释呢?

没错,造成这种实质差异的根本原因就在于,在完全二叉树中,越是靠近底层,节点越多;而越是靠近顶层,节点的就越少。因此,如果以深度作为成本的指标,那么累计的总和也自然会更大。

打个未必恰当的比方,每一个完全二叉堆就犹如一个社会,如果将高度对应于收入的水平,那么高收入人群必然是凤毛麟角,而大部分都是中低收入者。而如果需要对所有的人征税,再自然不过的规则莫过于按照收入的高低来决定税收的比例。低收入者少纳税,高收入者多纳税,再合理不过了。
~  
事实上Floyd 算法所对应的正是这样一种合理的税收政策,从这个角度来看,蛮力算法恰好颠倒了标准。就算法相当于为了迎合少数的富人,居然以收入作为反比来确定税赋的比例。因此,自然会不得人心,并最终受到惩罚。

相关文章:

数据结构(邓俊辉)学习笔记】优先级队列 06——完全二叉堆:批量建堆

文章目录 1. 自上而下的上滤:算法2. 自上而下的上滤:效率3. 自下而上的下滤:算法4. 自下而上的下滤:实例5. 自下而上的下滤:效率 1. 自上而下的上滤:算法 在介绍过完全二叉堆标准的静态和动态操作接口之后…...

Java | Leetcode Java题解之第344题反转字符串

题目&#xff1a; 题解&#xff1a; class Solution {public void reverseString(char[] s) {int n s.length;for (int left 0, right n - 1; left < right; left, --right) {char tmp s[left];s[left] s[right];s[right] tmp;}} }...

定制开发AI智能名片O2O商城小程序:基于限量策略与个性化追求的营销创新

摘要:随着科技的飞速发展和消费者需求的日益多元化&#xff0c;传统商业模式正经历着前所未有的变革。在数字化转型的大潮中&#xff0c;定制开发AI智能名片O2O商城小程序作为一种新兴的商业模式&#xff0c;凭借其独特的个性化定制能力、高效的线上线下融合&#xff08;O2O&am…...

Spring MVC Controller返回json日期格式配置失效的解决办法

如题&#xff0c;Spring MVC 4.3.0版本&#xff0c;配置jackson读写json。Controller层方法返回值对象包含java.util.Date类型的属性&#xff0c;并且在applicationContext.xml中配置了jackson的日期格式&#xff1a; <mvc:annotation-driven><mvc:message-converters…...

3.Default Constructor的构造操作

目录 1. 问题引入 2. 4种implicitly声明的default constructor 1. 问题引入 “default constructors......在需要的时候被编译产生出来”。关键词是“在需要的时候”&#xff0c;被谁需要&#xff0c;做什么事情&#xff1f;看看下面的代码&#xff0c;然后梳理下思路。 cl…...

CSS的:current伪类:精准定位当前活动元素

CSS&#xff08;层叠样式表&#xff09;是控制网页样式的核心语言。随着CSS4的提出&#xff0c;一系列新的选择器被引入&#xff0c;其中:current伪类便是这些新特性之一。:current伪类允许开发者选择当前处于活动状态的元素&#xff0c;这在创建动态和交互性网页时非常有用。本…...

搭建个人网站

一 个人搭建网站需要进行的操作 详细步骤&#xff1a; 1 网站目标&#xff1a;搭建在线查看法拍房拍卖价格的预测模型&#xff0c;输出预测结果 2 实际功能&#xff1a;在线爬取 阿里法拍网站的信息 3 根据实时模型建模预测法拍价格和成交概率 要搭建一个能够在线查看法拍房拍卖…...

机器学习课程学习周报八

机器学习课程学习周报八 文章目录 机器学习课程学习周报八摘要Abstract一、机器学习部分1.1 self-attention的计算量1.2 人类理解代替自注意力计算1.2.1 Local Attention/Truncated Attention1.2.2 Stride Attention1.2.3 Global Attention1.2.4 聚类Query和Key 1.3 自动选择自…...

福泰轴承股份有限公司进销存系统pf

TOC springboot413福泰轴承股份有限公司进销存系统pf 绪论 1.1 研究背景 现在大家正处于互联网加的时代&#xff0c;这个时代它就是一个信息内容无比丰富&#xff0c;信息处理与管理变得越加高效的网络化的时代&#xff0c;这个时代让大家的生活不仅变得更加地便利化&#…...

【k8s从节点报错】error: You must be logged in to the server (Unauthorized)

k8s主节点可以获取nodes节点信息&#xff0c;但是从节点无法获取&#xff0c;且报错“error: You must be logged in to the server (Unauthorized)” 排查思路&#xff1a; 当时证书过期了&#xff0c;只处理的主节点的证书过期&#xff0c;没有处理从节点的 kubeadm alpha …...

风清扬/基于Java语言的光伏监控系统+光伏发电预测+光伏项目+光伏运维+光伏储能项目

基于Java语言的光伏监控系统光伏发电预测光伏项目光伏运维光伏储能项目 介绍 基于Java语言的光伏监控系统光伏发电系统光伏软件系统光伏监控系统源码光伏发电系统源码 基于Java语言的光伏监控系统光伏发电预测光伏项目光伏运维光伏储能项目 安装教程 参与贡献 Fork 本仓库新…...

Datawhale X 魔搭 AI夏令营第四期 魔搭-AIGC方向全过程笔记

task1: 传送门 task2&#xff1a; 传送门 task3: 传送门 目录 Task1 赛题内容 可图Kolors-LoRA风格故事挑战赛 baseline要点讲解(请配合Datawhale速通教程食用) Step1 设置算例及比赛账号的报名和授权 Step2 进行赛事报名并创建PAI实例 Step3 执行baseline Step4…...

数组---怎么样定义和引用数组

一怎么定义数组 例 int a[10]; //定义了一个一维数组&#xff0c;数组名为a&#xff0c;此数组包含10个整型元素 所以我们了解到数组的基本定义为 类型符 数组名 [常量表达式] 定义数组可以包括常量和符号常量如 int [ 35 ];但是不能利用变量定义如 int n&#xff1b; …...

Nginx—Rewrite

目录 一、Nginx—Rewrite概述 1、常用的Nginx正则表达式 2、Rewrite功能 3、Rewrite跳转实现 4、Rewrite执行顺序和语法格式 二、location概述 1、location分类 2、location 常用的匹配规则 3、location 优先级 案例一&#xff1a; 案例二&#xff1a; 案例三&…...

《深入浅出WPF》读书笔记.5控件与布局(上)

《深入浅出WPF》读书笔记.5控件与布局(上) 背景 深入浅出WPF书籍学习笔记附代码。WPF中数据是核心是主动的,UI是数据的表达是被动的。 程序的本质是数据算法&#xff1b;控件的本质是数据行为&#xff1b; 5.控件与布局 一、6类控件派生关系 1.布局控件:可以容纳多个控件…...

二叉树的判断

二叉树的判断 判断一颗二叉树是不是搜索二叉树 &#xff08;左边的比根小&#xff0c;右边的比根大&#xff09; 中序遍历一下&#xff0c;如果是的话就一定是升序的 如何判断一颗二叉树是否是完全二叉树 1.遍历任意的节点时候&#xff0c;如果返回右孩子没有左孩子&#x…...

Hive3:常用的内置函数

1、查看函数列表 -- 查看所有可用函数 show functions; -- 查看count函数使用方式 describe function extended count;2、数学函数 -- round 取整&#xff0c;设置小数精度 select round(3.1415926); -- 取整(四舍五入) select round(3.1415926, 4); -- 设置小数精度4位(四…...

设计模式---构建者模式(Builder Pattern)

构建者模式&#xff08;Builder Pattern&#xff09; 是一种创建型设计模式&#xff0c;旨在将复杂对象的构建过程与其表示分离。它允许使用相同的构建过程创建不同的表示。该模式通常用于构建复杂对象&#xff0c;这些对象由多个部分组成或具有多个可选属性。 构建者模式的核…...

Pytorch中transform的应用

在PyTorch中&#xff0c;transforms模块主要用于对图像进行预处理和数据增强&#xff0c;以便于训练深度学习模型。这些转换操作可以包括裁剪、缩放、旋转、翻转等&#xff0c;以及对图像进行标准化处理。下面将详细介绍一些常用的transforms操作及其应用。 1. 常用的transfor…...

okular阅读软件简介

okular阅读软件官网&#xff1a;https://okular.kde.org/zh-cn/ Okular 是一款由 KDE 开发的跨平台文档阅读器&#xff0c;以其功能丰富、轻巧快速而著称。它支持多种文件格式&#xff0c;包括 PDF、EPub、DjVu、MD 文档&#xff0c;以及 JPEG、PNG、GIF、Tiff 和 WebP 图像&a…...

【书生大模型实战营(暑假场)闯关材料】基础岛:第1关 书生大模型全链路开源体系

【书生大模型实战营&#xff08;暑假场&#xff09;闯关材料】基础岛&#xff1a;第1关 书生大模型全链路开源体系 简介一、背景介绍1.1 背景介绍1.2 全链路开源开放体系的优势 二、全链路开源开放体系的主要特点2.1 模型组件的公开和共享2.2 数据集的公开和共享2.3 模型的互操…...

掌握抽象工厂模式:打造灵活且强大的跨平台产品族

抽象工厂模式是一种创建型设计模式&#xff0c;它的核心思想是提供一个创建一系列相关或相互依赖对象的接口&#xff0c;而无需指定它们具体的类。这种模式通过使用抽象工厂来封装和隔离具体产品的创建过程&#xff0c;使得客户端可以通过工厂接口来创建一族产品&#xff0c;从…...

【Hadoop】建立圈内组件的宏观认识(大纲版)

Hadoop生态圈解析&#xff1a;各组件的主要功能及作用详解 Hadoop生态圈是由一系列开源组件组成的&#xff0c;这些组件共同构建了一个大规模分布式计算和存储平台。 01存储类型组件 HDFS Hadoop体系的核心组件之一&#xff0c;它是一个分布式文件系统&#xff0c;被设计用于存…...

NFS主从同步Rsync、sersync2

准备工作检查selinux 防火墙 #关闭 selinux sed -i s/^SELINUX.*/SELINUXdisabled/ /etc/selinux/config #关闭防火墙 systemctl stop firewalld;systemctl disable firewalld1.安装nfs相关包 # 所有节点安装nfs相关包 yum install nfs-utils -y systemctl enable nfs-utils …...

uniapp项目中,在原有数据中增加选中的状态,数据不改变

uniapp项目中&#xff0c;在原有数据中增加选中的状态&#xff0c;选中后打印的数据显示有变化&#xff0c;然而文本的数据并没有发生变化 看代码 export default {data() {return {thicate: [{ id: 1, text: "Item 1" },{ id: 2, text: "Item 2" },{ id…...

WPF自定义控件

控件模板 顾名思义就是在原有的控件上进行模版修改成自己需要的样式 把ProgressBar修改为一个水液面的进度条 <Window x:Class"XH.CustomLesson.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://s…...

Java中的全局异常处理器 -- GlobalExceptionHandler

开发记录&#xff1a;全局异常处理器笔记 import lombok.extern.slf4j.Slf4j; import org.mybatis.spring.MyBatisSystemException; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.RedisConnectionFailureException; im…...

R语言文本挖掘-万字详细解析tm包

tm包&#xff08;Text Mining Package&#xff09;是R语言中用于文本挖掘的强大工具包&#xff0c;它提供了一系列的功能来处理和分析文本数据。偶然看到这个包&#xff0c;我们一起看看其中的基本功能&#xff1a; 数据载入&#xff1a;tm包支持从多种数据源载入文本数据&…...

JWT中的Token

1.JWT是什么&#xff1f; jwt&#xff08;json web token的缩写&#xff09;是一个开放标准&#xff08;rfc7519&#xff09;&#xff0c;它定义了一种紧凑的、自包含的方式&#xff0c;用于在各方之间以json对象安全地传输信息&#xff0c;此信息可以验证和信任&#xff0c;因…...

苹果在iOS 18.1中向第三方开发者开放iPhone的NFC芯片

苹果公司今天宣布&#xff0c;开发者很快就能首次在自己的应用程序中提供 NFC 交易功能&#xff0c;而目前这主要是Apple Pay独有的功能。从今年晚些时候的 iOS 18.1 开始&#xff0c;开发者将可以使用新的 API 提供独立于 Apple Pay 和 Apple Wallet 的应用内非接触式交易。 这…...

系统开发之禁止卸载应用名单

本文目的主要是记录自己系统&#xff08;Android7.1系统&#xff09;开发实现代码&#xff0c;以便后期通用的功能可以直接使用&#xff0c;不需要再去通过搜索然后筛选再验证的繁琐流程&#xff0c;大大减小自己的开发时间。 我实现思路是在系统内新增自己的数据库用来记录禁止…...

wait 和 notify

目录 wait() 方法 notify() 方法 notifyAll() 方法 nofity 和 notifyAll wait 和 notify wait 和 sleep 的区别 wait 和 join 的区别 由于线程之间是抢占式执行的&#xff0c;因此&#xff0c;线程之间执行的先后顺序难以预知&#xff0c;但是&#xff0c;在实际开发中&…...

docker 启动 mongo,redis,nacos.

docker run --name mymongodb -e MONGO_INITDB_ROOT_USERNAMEadmin -e MONGO_INITDB_ROOT_PASSWORDXiaoyusadsad -p 27017:27017 -v /path/to/mongo-data:/data/db -d mongodb/mongodb-community-server:4.4.18-ubuntu2004-v 的目录必须是绝对目录 目录必须 chmod 777 /path/…...

Docker Swarm 搭建

Docker Swarm 搭建 1. 环境介绍 操作系统Centos 7Centos 7Centos 7内核版本Linux 3.10.0-957.el7.x86_64Linux 3.10.0-957.el7.x86_64Linux 3.10.0-957.el7.x86_64主机名称swarm-managerswarm-worker1swarm-worker2IP192.168.1.100192.168.1.200192.168.1.250Docker Domain20…...

浅述TSINGSEE青犀EasyCVR视频汇聚平台与海康安防平台的区别对比

在我们的很多项目中都遇到过用户的咨询&#xff1a;TSINGSEE青犀EasyCVR视频汇聚平台与海康平台的区别在哪里&#xff1f;确实&#xff0c;在安防视频监控领域&#xff0c;EasyCVR视频汇聚平台与海康威视平台是两个备受关注的选择。它们各自具有独特的功能和优势&#xff0c;适…...

设计模式系列:策略模式的设计与实践

一、背景 策略模式&#xff08;Strategy Pattern&#xff09;是一种行为设计模式&#xff0c;它定义了一系列的算法&#xff0c;并将每一个算法封装起来&#xff0c;使它们可以相互替换。策略模式让算法的变化独立于使用算法的客户。 二、结构 策略模式主要包含三个角色&…...

数据挖掘之数据预处理

数据预处理是数据挖掘中的一个关键步骤&#xff0c;它的主要目的是对原始数据进行清洗、转换和格式化&#xff0c;以确保其质量和一致性&#xff0c;从而为后续的数据挖掘任务&#xff08;如分类、回归、聚类等&#xff09;提供可靠的数据基础。数据预处理一般包括以下几个主要…...

RocketMQ核心知识点整理,值得收藏!

1. 基本概念 Topic: 消息类别的集合&#xff0c;如订单消息发送到order_topic。标签&#xff08;Tag&#xff09;: 同一Topic下区分不同消息的标志&#xff0c;实现精细化消息管理。ConsumeGroup: 消息消费组&#xff0c;可订阅多个Topic&#xff0c;一个Topic可被多个消费组订…...

微信小程序骨架屏

骨架屏是常用的一种优化方案&#xff0c;针对于页面还未加载完时给用户的一种反馈方式。如果自己要写骨架屏有点复杂因为页面的元素过多且不稳定&#xff0c;这边直接使用微信开发工具生成骨架屏。也不只有微信开发工具有像常用的抖音开发工具&#xff0c;字节开发工具都有对应…...

Window下node安装以及配置

在 Windows 下安装 Node.js 非常简单&#xff0c;你可以通过官方提供的安装程序或者使用多版本管理工具&#xff08;如 NVM-Win&#xff09;来进行安装。下面是两种方法的具体步骤&#xff1a; 1. 安装 Node.js程序 步骤如下&#xff1a; 访问官方网站&#xff1a; 访问 Node…...

校园疫情防控系统--论文pf

TOC springboot432校园疫情防控系统--论文pf 课题的来源 2019年在我国武汉爆发了一场规模非常庞大、传播速度十分迅速、对人体危害及其严重的新冠肺炎疫情。引发此次急性感染性新冠肺炎疫情的冠状病毒传播性较强&#xff0c;其传播主要是通过呼吸道飞沫和密切接触这两个途径…...

在Debian 9上使用Apt安装Java的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 介绍 Java 和 JVM&#xff08;Java 虚拟机&#xff09;是许多软件的必备组件&#xff0c;包括 Tomcat、Jetty、Glassfish、Cassandra 和…...

人工智能在网络安全中的三大支柱

人工智能 (AI) 席卷了网络安全行业&#xff0c;各种供应商都在努力将 AI 融入其解决方案中。但 AI 与安全之间的关系不仅仅在于实现 AI 功能&#xff0c;还在于攻击者和防御者如何利用该技术改变现代威胁形势。它还涉及如何开发、更新和保护这些 AI 模型。如今&#xff0c;网络…...

rk3568mpp终端学习笔记

RK3568Terminal封装MppGraph 通过脚本取和设置音量/zigsun/bin/linux/bin.debug.Linux.rk3568/get_record_voice_value.sh /zigsun/bin/linux/bin.debug.Linux.rk3568/set_record_voice_value.sh class RK3568Terminal : public IAVLinkManager, p…...

【C++继承】赋值兼容转换作用域派生类的默认成员函数

1.继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类(或子类)。继承呈现了面向对象程序设计的层次结构&#xf…...

HTML5+JavaScript绘制彩虹和云朵

HTML5JavaScript绘制彩虹和云朵 彩虹&#xff0c;简称虹&#xff0c;是气象中的一种光学现象&#xff0c;当太阳光照射到半空中的水滴&#xff0c;光线被折射及反射&#xff0c;在天空上形成拱形的七彩光谱&#xff0c;由外圈至内圈呈红、橙、黄、绿、蓝、靛、紫七种颜色。事实…...

MySQL——单表查询(二)按条件查询(2)带 IN 关键字的查询

IN 关键字用于判断某个字段的值是否在指定集合中&#xff0c;如果字段的值在集合中&#xff0c;则满足条件&#xff0c;该字段所在的记录将被查询出来。其语法格式如下所示&#xff1a; SELECT *|字段名 1,字段名 2,… FROM 表名 WHERE 字段名 [NOT〕IN(元素 1,元素 2,…) 在上…...

【mysql】mysql 用户管理---创建、权限管理等等

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…...

本地服务器物理机中redis设置、取消密码

1.服务器物理机上redis的操作【服务器中操作】 &#xff08;1&#xff09;首先先看一下当前运行中的redis实例&#xff1a; [rootiZuf67k70ucx14s6zcv54dZ var]# ps aux | grep redis-server因为我这里有两个实例在运行&#xff0c;即物理机上的redis和docker中的redis&…...

关于xilinx的FFTIP的使用和仿真

工具&#xff1a;vivado2018.3&#xff0c;modelsim10.6d 场景&#xff1a;在进行数据进行频谱分析的时候&#xff0c;使用FPGA来完成FFT的计算可以加快数据的计算速度。 下面使用仿真完成DDS产生的数据的FFT以及IFFT。原始数据使用DDSIP产生&#xff0c;通过IP产生的波形数据…...