【数据结构】树与二叉树——二叉树的概念

二叉树的概念

  • 导读
  • 一、二叉树的定义及其主要特性
    • 1.1 二叉树的定义
    • 1.2 二叉树的主要特性
  • 二、特殊的二叉树
    • 2.1 满二叉树
    • 2.2 完全二叉树
    • 2.3 二叉排序树
    • 2.4 平衡二叉树
  • 三、二叉树的性质
    • 3.1 性质一
    • 3.2 性质二
    • 3.3 性质三
    • 3.4 性质四
    • 3.5 性质五
  • 结语

封面

导读

大家好,很高兴又和大家见面啦!!!

在上一篇的内容中,我们介绍了树的一些基本概念、重要术语以及树的基本性质。通过上一篇内容的学习,相信大家都已经对树这种数据结构有了一个初步认识,并且能够区分度为m的树与m叉树。

要进一步的认识树这种数据结构的话,我们还是需要从逻辑结构、存储结构以及数据的运算三要素出发,来逐步认识树。

从今天的内容开始,我们将以二叉树这种特殊的树形结构为例,来逐步学习数据结构的三要素。下面我们就来开始进入的内容吧!!!

一、二叉树的定义及其主要特性

二叉树是一种特殊的树形结构,其特点是每个结点至多只有两棵子树(即二叉树中不存在度大于2的结点),并且二叉树的子树有左右之分,其次序不能任意颠倒。

1.1 二叉树的定义

与树相似,二叉树也是以递归的形式定义。二叉树是 n ( n > = 0 ) n(n>=0) n(n>=0)个结点的有限集合:

  1. n = 0 n=0 n=0时,为空二叉树;
  2. n > 0 n>0 n>0时,二叉树由一个根结点和两棵互不相交的子树组成。这两棵子树分别存在于根结点的左右两侧,因此被称为左右子树。而左子树和右子树又分别是一棵二叉树。

这里我们需要注意的是二叉树的左右子树可以都为空子树,也可以是其中一棵为空子树,如下所示:
二叉树的基本形态

对于m叉树而言,树中的所有结点的度都是<=m,同理,二叉树中,所有结点的度都是<=2,因此二叉树中每一个结点作为根组成的树都是二叉树。

1.2 二叉树的主要特性

二叉树这种特殊的树形结构,它具有以下独有的特性:

  1. 二叉树的组成有三个部分,从左到右依次是:左子树、根结点、右子树;
  2. 二叉树的左右次序是确定的,并且二叉树的左右子树不能进行互换,因此二叉树是一棵有序树;
  3. 二叉树结点的度<=2,因此二叉树可以为空树;
  4. 二叉树的左右子树也是二叉树;

与二叉树比较相似的就是度为2的有序树,其基本形态如下所示:
度为2的有序树
由上图可知,其基本特性可总结为以下几点:

  1. 度为2的有序树的组成部分有两部分:分支结点(度>0的结点)、叶结点(度=0的结点);
  2. 度为2的有序树的左右次序是相较于另一个孩子而言,因此当树中存在度为1的结点时,该结点的孩子结点没有左右之分;
  3. 度为2的有序树中至少要有一个度为2的结点,因此其结点数量最少为3;
  4. 度为2的有序树中并不是所有结点的度都为2,因此其子树可能是度为1的树和度为0的树;

由此我们可以看到这二者的区别有以下几点

  1. 组成部分不同:二叉树是根据结点的位置划分为3部分:左子树、根结点和右子树;度为2的树则根据结点的度划分为2部分:分支结点和叶结点;
  2. 结点数量不同:二叉树中结点数量可以为0,即二叉树可以为空树;度为2的树中最少要有一个结点的度为2,因此度为2的树的结点最少为3;
  3. 子树的性质不同:二叉树的子树同样也是二叉树;度为2的子树可以是度为0的树、度为1的树和度为2的树;

二、特殊的二叉树

在了解了二叉树的定义和基本特性之后,下面我们来看一下几种特殊的二叉树;

2.1 满二叉树

**定义:**一棵高度为h,且含有 2 h − 1 2^h-1 2h1个结点的二叉树称为满二叉树。即树中的每层都含有最多的结点,如下所示:

满二叉树

在满二叉树中,除了最后一层的叶结点的结点度数为0以外,其余的结点度数都为2,因此我们不难得到第一个结论:

  • 高为h的满二叉树中有 2 h − 1 2^{h-1} 2h1个叶结点,有 2 h − 1 − 1 2^{h-1}-1 2h11个度为2的结点;

如果我们给满二叉树中的各个结点编上号,并约定从根结点开始自上而下,从左到右对每个结点进行由小到大的编号,这时我们就会得到如下二叉树:

从1开始编号
这里我们以从1开始对二叉树进行编号,不难得到上述二叉树。通过观察不难发现满二叉树的父结点与子结点之间的编号关系:

  • 对于编号为i的结点,如果有双亲,则双亲的结点编号为 i / 2 i/2 i/2 结果向下取整;如果有孩子,则左孩子的编号为 2 i 2i 2i,右孩子的编号为 2 i + 1 2i+1 2i+1

如果从0开始对二叉树进行编号,我们则可以得到下面的二叉树:

从0开始编号
可以看到,此时对于结点编号为i的结点,其父结点与孩子结点的结点编号的关系为:

  • 若有父结点,则父结点编号为 ( i − 1 ) / 2 (i-1)/2 (i1)/2 结果向下取整;若有孩子结点,则左孩子的结点编号为 2 i + 1 2i+1 2i+1 ,右孩子的编号为 2 i + 2 2i+2 2i+2

这两种编号方式及其结论我们先要对其有个初步印象,不需要死记硬背,在后续的内容中,我们会进一步加深其理解。

2.2 完全二叉树

**定义:**高度为h、有n个结点的二叉树,当且仅当其每个结点都与高度为h的满二叉树中编号为1~n的结点一一对应是,称为完全二叉树。

完全二叉树单看其定义的话不是那么容易理解,下面我换一种简单的方式来进一步说明。

满二叉树指的是每一层的结点数量都是最大值,即高度为 h h h 的满二叉树第 i i i 层共有 2 i − 1 2^{i-1} 2i1个结点;
完全二叉树指的是高度为 h h h 的满二叉树的最后一层的右侧可能缺失结点,即 n h ∈ [ 1 , 2 h − 1 ] n_h ∈ [1,2^{h-1}] nh[1,2h1]

下面我们通过图像来进一步的理解,如下所示:

完全二叉树
对于高度为h完全二叉树而言,它具有以下特性:

  1. 从第1层到第h-2层的结点的度为2;
  2. 从第1层到第h-1层的结点总数为 2 n − 1 − 1 2^{n-1}-1 2n11
  3. 第h层的结点数 n h ∈ [ 1 , 2 h − 1 ] n_h∈[1,2^{h-1}] nh[1,2h1]
  4. 若存在度为1的结点,则该结点有且只有1个,其孩子结点一定是左孩子且该结点位于 h − 1 h-1 h1层,其孩子位于第h层;
  5. 完全二叉树中的叶结点只存在于第h层以及 h − 1 h-1 h1 层的右侧;

当我们将其从1开始进行编号时,我们不难得到以下二叉树:

从1开始编号
从图中可以 看到,编号为13的结点只有左孩子,并且所有大于13的结点全部都是叶节点;而对于14号结点而言,它本身就是叶结点,从图中可以看到,所有编号大于14的结点均为叶结点;因此我们不难得到一个新的结论:

  • 对于高度为h的完全二叉树,当编号为i的结点只有左孩子或者该结点为叶结点时,编号大于i的结点均为叶结点;

在上图展示的完全二叉树中,结点总数为26个,从编号中我们不难发现,编号为1~13的结点均为分支结点,而14~26的结点均为叶结点,;
当我们将26号结点去掉时,此时结点总数变成了25,对应的父结点编号为12,此时可以看到所有结点编号不超过12的结点均为分支结点,而所有编号大于12的结点均为叶结点因此我们还可以的到一个结论:

  • 当结点的编号i满足 i < = n / 2 i<=n/2 i<=n/2 时,对应编号的结点均为分支结点,而 i > n / 2 i>n/2 i>n/2 的结点,均为叶结点;

那如果是从0开始编号又会如何呢?如下所示:

从0开始编号
可以看到,此时该完全二叉树的结点总数为26,编号为12的结点只有左孩子,所有编号大于12的结点均为叶结点,所有编号不超过12的结点均为分支结点。因此前面得到的结论在这里也同样适用只不过稍有不同,如下所示:

  • 当对高度为h的完全二叉树,从0开始进行编号时,对于结点编号i满足 i < = ( i − 1 ) / 2 i<=(i-1)/2 i<=(i1)/2 向下取整的所有结点均为分支结点,而满足 i > ( i − 1 ) / 2 i>(i-1)/2 i>(i1)/2向下取整的所有结点均为叶结点;

其实不管是从0开始编号还是从1开始编号,只要是对于结点数为n的完全二叉树,当对树中的结点从上到下,从左到右依次进行从小到大的编号时,结点的编号一定满足下列结论:

  • 对于最后一个结点n而言,所有编号不大于其父结点的编号的结点均为分支结点,所有编号大于其父结点编号的结点均为叶结点

细心的朋友会发现对于结点数为n的完全二叉树,还有一条非常重要的结论:

  • 当n为偶数时,最后一个结点一定是左孩子,其父结点的度一定为1;
  • 当n为奇数时,最后一个结点一定是右孩子,树中不存在度为1的结点;

完全二叉树的相关结论对我们后面的学习会非常重要,因此,建议大家熟读一下这些结论,当然,不建议大家死记硬背。如果在考试时遇到了这些问题,完全可以现场将这些结论通过画图推导出来,大家只要理解这些结论是如何得到的即可。

2.3 二叉排序树

定义:左子树上的所有结点的关键字均小于根结点的关键字;右子树上的所有结点的关键字均大于根结点的关键字;左子树和右子树又各是一棵二叉排序树。

二叉排序树(Binary Search Tree)又称为二叉搜索树或者二叉查找树,英文缩写为BST。这个树在后面的学习中也是一个需要重点关注的树,这里我们同样是对其简单的做个介绍。

BST的定义中所提到的关键字,和我们在C语言中学习的关键字是有区别的,我们目前可以简单的理解为就是二叉树的各个结点中存储的内容。在BST中结点存储的内容满足左子树<根结点<右子树,以整型为例,如下所示:

二叉排序树
在上图中我们不难发现,在BST中如果一个结点存在左孩子,那么左孩子中存储的内容一定小于该结点存储的内容,如果该结点存在右孩子,则右孩子中存储的内容一定大于该结点存储的内容,如果同时存在左右孩子,那么结点中存储的内容一定满足左孩子<该结点<右孩子。

对于BST的详细内容在后面的篇章中我们会进一步介绍,目前大家只需要知道有这种特殊的二叉树即可。

2.4 平衡二叉树

定义:树上任意结点的左子树和右子树的深度之差不超过1。

平衡二叉树(Balanced Binary Tree)又称为AVL树。这是由Georgy Maximovich Adelson-Velsky和Evgenii Mikhailovich Landis两位大佬提出来的,因此就由这两位大佬的名字中的AV和L共同为该二叉树进行的命名。感兴趣的朋友可以点击AVL Trees来了解大佬们提出AVL Trees的事情经过。

下面我简单的说明一下什么事AVL树,如下图所示:

平衡二叉树
可以看到,在上述例子中每个结点的左右子树深度的差值的绝对值都不会超过1,这种就是AVL树,对于AVL树的相关内容,我们同样会在后面的篇章中详细的介绍,目前大家只需要了解即可。

三、二叉树的性质

在二叉树中有一些比较重要的性质需要我们有所了解,下面我们就来一一介绍这些性质的相关内容。

3.1 性质一

非空二叉树上的叶结点数等于度为2的结点数加1,即 n 0 = n 2 + 1 n_0=n_2+1 n0=n2+1

这条性质的证明比较简单,下面我们先介绍通过计算来证明该性质,如下所示:

  1. 设二叉树中度为0、度为1和度为2的结点数分别为 n 0 n_0 n0 n 1 n_1 n1 n 2 n_2 n2,则我们可以得到二叉树中的总结点数为 n = n 0 + n 1 + n 2 n = n_0+n_1+n_2 n=n0+n1+n2
  2. 通过树的性质——树的结点数为所有度数之和加1,我们可以得到 n = 0 × n 0 + 1 × n 1 + 2 × n 2 + 1 n=0×n_0+1×n_1+2×n_2+1 n=0×n0+1×n1+2×n2+1
  3. 联立两式可得: n 0 + n 1 + n 2 = n 1 + 2 × n 2 + 1 n_0+n_1+n_2 = n_1+2×n_2+1 n0+n1+n2=n1+2×n2+1
  4. 通过移项可得: n 0 = n 2 + 1 n_0=n_2+1 n0=n2+1;证明完毕。

接下来我们再来介绍通过特殊二叉树来证明该性质,如下所示:

  1. 以高度为h的满二叉树为例,在满二叉树中,叶结点只存在于第h层,且h层的结点数量为最大值,因此其叶结点的数量为 n 0 = 2 h − 1 n_0 = 2^{h-1} n0=2h1
  2. 满二叉树的第1层到第h-1层的结点的度都为2,因此度为2的结点总数为 n 2 = 2 h − 1 − 1 n_2=2^{h-1}-1 n2=2h11
  3. 由两式联立可得: n 2 = n 0 − 1 n_2=n_0-1 n2=n01
  4. 再对其移项可得: n 0 = n 2 + 1 n_0=n_2+1 n0=n2+1;证明完毕。

对于二叉树的共同性质,我们可以通过特殊二叉树来进行推导,但是这种方式只适用于选择填空题我们在忘记该性质内容时,如果是证明题还是得采用第一种方式来证明。

3.2 性质二

非空二叉树上第k层上至多有 2 k − 1 2^{k-1} 2k1个结点。

这一条性质是由树的性质进行进一步推导得到的。在介绍树的性质时,我们有介绍过度为m的树的第i层的结点数最多有 m i − 1 m^{i-1} mi1个。对于二叉树而言,这里的m=2,我们将其代入即可得到该性质。由于上一篇内容有详细证明,这里我就不再多加赘述。

3.3 性质三

高度为h的二叉树至多有 2 h − 1 ( h > = 1 ) 2^h-1(h>=1) 2h1(h>=1)个结点。

这一条性质同样也是从树的性质进一步推导得到的。在介绍树的性质时,我们还介绍过对于高度为h的m叉树至多有 n = ( m h − 1 ) / ( m − 1 ) n=(m^h-1)/(m-1) n=(mh1)/(m1)个结点。对于二叉树而言,m=2,我们将其代入即可得到该性质。上一篇内容同样也有详细证明,这里我就不再多加赘述。

3.4 性质四

对于完全二叉树按从上到下,从左到右的顺序依次编号1,2,3……,n,则有以下关系:

  1. i > 1 i>1 i>1 时,结点i的双亲的编号为 i / 2 (向下取整) i/2(向下取整) i/2(向下取整),即当 i i i 为偶数时,其双亲结点编号为 i / 2 i/2 i/2,该结点为左孩子;当 i i i 为奇数时,其双亲结点编号为 ( i − 1 ) / 2 (i-1)/2 (i1)/2,该结点为右孩子;
  2. 2 i < = n 2i<=n 2i<=n 时,结点 i i i的左孩子编号为 2 i 2i 2i ,否则无左孩子。
  3. 2 i + 1 < = n 2i+1<=n 2i+1<=n 时,结点 i i i的右孩子编号为 2 i + 1 2i+1 2i+1,否则无右孩子。
  4. 结点 i i i 所在的层次(深度)为 h = l o g 2 i + 1 (向下取整) h=log_2i+1(向下取整) h=log2i+1(向下取整);

注意,这里的关系是从1开始进行编号,因此当我们从0开始编号时,对应的关系是会发生变化的,这里我们主要介绍这些关系的推导过程。

关系1——结点 i i i 的编号与其双亲结点的关系

在介绍完全二叉树时我们有提到过对于结点 i i i 而言,如果有父结点则父结点编号满足:

  • 当从1开始编号时,其父结点的编号为 i / 2 (向下取整) i/2(向下取整) i/2(向下取整)
  • 当从0开始编号时,其父结点的编号为 ( i − 1 ) / 2 (向下取整) (i-1)/2(向下取整) (i1)/2(向下取整)

根据编号的不同,结点 i i i 的奇偶性所决定结点 i i i 的位置也有区别:

  • 当从1开始编号时,若 i i i 为偶数,则该结点为左孩子,若 i i i 为奇数则该结点为右孩子;
  • 当从0开始编号时,若 i i i 为奇数,则该结点为左孩子,若 i i i 为偶数则该结点为右孩子;

关系2、3——结点 i i i 的编号与其孩子结点的关系

在不同方式的编号中结点 i i i 的左右孩子编号也不相同:

  • 当从1开始编号时,结点 i i i 的左孩子若存在,则其编号为 2 i 2i 2i;右孩子若存在,则其编号为 2 i + 1 2i+1 2i+1
  • 当从0开始编号时,结点 i i i 的左孩子若存在,则其编号为 2 i + 1 2i+1 2i+1;右孩子若存在,则其编号为 2 i + 2 2i+2 2i+2

这里需要注意的是判断左右孩子是否存在,依据就是其左右孩子的编号不能超过结点的最大编号。

关系4——结点 i i i 的编号与其深度的关系

由于完全二叉树的特殊性,每一个结点的结点编号都是从第一层到该结点的最大结点编号,因此我们可以通过结点自身的编号获取从一层到该结点的结点总数:

  • 当从1开始编号,从第一层到结点 i i i 的结点总数为 n = i n=i n=i
  • 当从0开始编号,从第一层到结点 i i i 的结点总数为 n = i + 1 n=i+1 n=i+1

对于高度为h的完全二叉树而言,其结点总数最少为 n = 2 h − 1 n=2^{h-1} n=2h1(详细证明见性质五);

因此联立上式可得:

  • 当从1开始编号,结点 i i i 的所在层次为 h = l o g 2 i + 1 (向下取整) h=log_2i+1(向下取整) h=log2i+1(向下取整)
  • 当从0开始编号,结点 i i i 的所在层次为 h = l o g 2 ( i + 1 ) + 1 (向下取整) h=log_2(i+1)+1(向下取整) h=log2(i+1)+1(向下取整)

3.5 性质五

具有 n ( n > 0 ) n(n>0) n(n>0)个结点的完全二叉树的高度为 h = l o g 2 ( n + 1 ) (向上取整) h=log_2(n+1)(向上取整) h=log2(n+1)(向上取整) h = l o g 2 n + 1 (向下取整) h=log_2n+1(向下取整) h=log2n+1(向下取整)

高度为h的完全二叉树的结点总数n = 每一层的结点数之和,即 n = n 1 + n 2 + … … + n h − 1 + n h (下标 h 为结点层次) n=n_1+n_2+……+n_{h-1}+n_h(下标h为结点层次) n=n1+n2+……+nh1+nh(下标h为结点层次)

对于高度为h的完全二叉树而言,除了第h层,其余每一层的结点数都是 2 i − 1 ( 1 < = i < = h − 1 ) 2^{i-1}(1<=i<=h-1) 2i1(1<=i<=h1)

联立两式,我们不难得到结点总数为:
n = 2 0 + 2 1 + … … + 2 h − 2 + n h n=2^0+2^1+……+2^{h-2}+n_h n=20+21+……+2h2+nh

当高度为h的完全二叉树的结点总数最少时,即 n h = 1 n_h=1 nh=1,此时我们不难得到结点总数为:
n = 2 0 + 2 1 + … … + 2 h − 2 + 1 n=2^0+2^1+……+2^{h-2}+1 n=20+21+……+2h2+1

根据等比数列的求和公式我们就能得到: n = 2 h − 1 n=2^{h-1} n=2h1

性质五

当高度为h的完全二叉树的结点总数最多是,即 n h = 2 h − 1 n_h=2^{h-1} nh=2h1,此时我们不难得到结点总数为:
n = 2 0 + 2 1 + … … + 2 h − 2 + 2 h − 1 n=2^0+2^1+……+2^{h-2}+2^{h-1} n=20+21+……+2h2+2h1

根据等比数列的求和公式我们就能得到: n = 2 h − 1 n=2^h-1 n=2h1
性质五2

那对于结点数量为n的完全二叉树,其结点数量一定是位于最少与最多之间,因此我们可以得到不等式: 2 h − 1 < = n < = 2 h − 1 2^{h-1}<=n<=2^h-1 2h1<=n<=2h1

对不等式两边分别求解我们不难得到 h > = l o g 2 n + 1 h>=log_2n+1 h>=log2n+1 h < = l o g 2 ( n + 1 ) h<=log_2(n+1) h<=log2(n+1)

将该不等式改写成等式我们就得到了:

h = l o g 2 n + 1 (向下取整) h=log_2n+1(向下取整) h=log2n+1(向下取整) h = l o g 2 ( n + 1 ) (向上取整) h=log_2(n+1)(向上取整) h=log2(n+1)(向上取整)。证明完毕。

对于二叉树的性质证明整体来说还是比较简单的,从整个证明的过程我们不难发现,这些性质都是基于树的性质进行的进一步推导,而对于完全二叉树的相关性质,我们借助图像的话能够更加容易的对其进行理解。因此在学习二叉树的过程中,建议大家遇到问题时,多画图,通过图像来帮助自己解决问题。

结语

今天的内容咱们就介绍到这里。在今天的内容中,我们知道了什么是二叉树,以及二叉树的一些基本性质,我们还认识了4种特殊的二叉树——满二叉树、完全二叉树、BST和AVL树。在接下来的内容中,我们同样会从数据结构的三要素出发进一步介绍二叉树这种数据结构,大家记得关注哦!!!

咱们今天的内容到这里就全部结束了,如果大家喜欢博主的内容,可以点赞、收藏加评论三连支持一下,当然也可以转发给身边需要的朋友。最后感谢各位的支持,咱们下一篇再见!!!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MFC 使用sapi文字转换为语音

文章目录 添加头文件声明变量 添加头文件 声明变量 pSpVoice NULL; //默认构造函数中初始化为空 bool CChKBarSCCodeApp::InitSpVoice() {HRESULT hr ::CoInitialize(NULL); // COM初始化if (!SUCCEEDED(hr)){AfxMessageBox(_T("声音环境初始化失败&#xff01;…

高中数学:解三角形-大题练习(第二问解题方法整理)

一、题型归纳 1、最值问题 例题1、例题2 2、恒等变换 例题3、例题4、例题5、例题6 3、图形问题 例题7、例题8 例题1 解析 第二小问 首先&#xff0c;正弦定理和余弦定理都可以解决这一题。下面我给出两种解法 1、余弦定理基本不等式 2、正弦定理辅助角公式 例题2 解析…

智能投顾:重塑金融理财市场,引领行业新潮流

一、引言 在数字化浪潮的推动下,金融行业正经历着前所未有的变革。其中,智能投顾作为金融科技的重要分支,以其高效、便捷和个性化的服务,逐渐成为金融理财市场的新宠。本文旨在探讨智能投顾如何引领金融理财新潮流,通过丰富的案例及解决方案,展示其独特的魅力和价值。 二…

记一次使用mysql存储过程时,游标取值为空问题

call modify_collation(num,count_num) > 1146 - Table test.table_name doesnt exist > 时间: 0.009s 我在使用mysql存储过程时&#xff0c;打印时游标取值为空&#xff0c;报错找不到表。我的过程语句是这样的&#xff1a; drop procedure if exists modify_collation…

推荐系统学习 二

双塔模型的结构 用户的特征&#xff0c;我们知道用户ID还能从用户填写的资料和用户行为中获取很多特征&#xff0c;包括离散特征和连续特征。所有这些特征不能直接输入神经网络&#xff0c;而是要先做一些处理&#xff0c;比如用embedding层把用户ID映射到一个向量 跟之前我们…

BioTech - 计算大量 蛋白质结构预测结果 的聚类中心(Cluster)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/139419653 CASP16 的 H0215 样本,聚类之后,10个类别的最高置信度结果。 Agglomerative Clustering,即凝聚层次聚类,属于层次聚类算法,通过逐步合并或聚集数据点,…

璞华科技荣获《数据(产品)登记证书》,璞华易表进入地方数据资产入表、数据资产运营管理市场!

随着数字经济时代的飞速发展&#xff0c;数据要素在社会经济中的地位也变得越来越重要&#xff0c;成为超越传统土地、劳动力、技术和资金的新型关键资源&#xff0c;被誉为“第五要素”。这一变化不仅凸显了数据在当今社会的巨大价值&#xff0c;也引发了对数据确权、数据交易…

『大模型笔记』Transformer系列技术博文汇总!

Transformer系列技术博文汇总&#xff01; 文章目录 第1篇&#xff1a;矩阵乘法概念解释第2篇&#xff1a;使用缩放点积方法的自注意力第3篇&#xff1a;深入探讨多头注意力、自注意力和交叉注意力第4篇&#xff1a;Transformer 架构第5篇&#xff1a;PostLN&#xff0c;PreLN…

一文了解帮助手册:含义、作用与制作

在日常的工作、学习和生活中&#xff0c;我们难免会使用到一些陌生的工具、软件或者设备&#xff0c;第一次使用时会感到迷茫。这时&#xff0c;一本有效的帮助手册就派上用场了&#xff0c;它能帮助用户快速上手产品&#xff0c;解决问题。什么是帮助手册&#xff1f;它有哪些…

教师服务期内可以调动吗

作为一名还在服务期内的老师&#xff0c;你可能会好奇&#xff1a;我在服务期内能不能换个学校教书&#xff1f;这个问题听起来简单&#xff0c;但实际上答案得看具体情况。 什么是服务期呢&#xff1f;简单来说&#xff0c;就是你和学校签了合同&#xff0c;得在校工作满五年&…

JVM虚拟机的故事

⭐️ JVM虚拟机 在编程世界的深处&#xff0c;有一个被誉为“万能翻译机”的存在&#xff0c;它就是JVM&#xff08;Java Virtual Machine&#xff09;虚拟机。它的诞生&#xff0c;不仅改变了编程语言的命运&#xff0c;更引领了一场跨平台的革命。 ⭐️ 一、起源与诞生 故事…

分集增益Diversity Gain与复用增益Multiplexing Gain

文章目录 概念DoF&#xff08;Degrees of Freedom&#xff09;复用增益&#xff08;Multiplexing Gain&#xff09;自由度&#xff08;Degrees of Freedom, DoF&#xff09;两者的关系实际应用关系总结具体关系例子结论 近场MIMO的分集与复用与远场MIMO有何不同 概念 在通信领…

记录jenkins pipeline ,git+maven+sonarqube+打包镜像上传到阿里云镜像仓库

1、阶段视图&#xff1a; 2、准备工作 所需工具与插件 jdk&#xff1a;可以存在多版本 maven&#xff1a;可以存在多版本 sonar-scanner 凭证令牌 gitlab&#xff1a;credentialsId sonarqube:配置在sonarqube208服务中 3、jenkinsfile pipeline {agent anystages {stage(从…

DevOps全面综述:从概念到实践

一、背景与概述 1.1 DevOps的起源与发展 DevOps&#xff08;Development and Operations的缩写&#xff09;是软件工程领域中的一种文化和实践方法&#xff0c;旨在促进开发团队与运维团队之间的协作&#xff0c;从而实现更高效、更可靠的软件交付。DevOps起源于敏捷软件开发方…

Mac 使用Docker安装Elasticsearch、Kibana

安装ElasticSearch 通过docker安装es docker pull elasticsearch:8.6.2 在本地创建elasticsearch.yml文件 mkdir /Users/ky/Documents/learn/es/elasticsearch.yml 编辑yml文件内容 http: host: 0.0.0.0 xpack.security.enabled: false xpack.security.enrollment.enabled: t…

阿赵UE引擎C++编程学习笔记——生成Actor

大家好&#xff0c;我是阿赵。   使用Unity引擎的朋友应该都知道&#xff0c;Unity引擎的预设资源叫做Prefab&#xff0c;然后把预设资源生成在场景的命令是&#xff1a;GameObject.Instantiate。UE引擎里面&#xff0c;并没有统一的Prefab类型&#xff0c;而是通过各种蓝图来…

DHCP及FTP

一、1、DHCP动态主机配置协议&#xff1a;通常被应用在大型的局域网络环境中&#xff0c;主要作用是集中地管理、分配IP地址&#xff0c;使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息&#xff0c;并能够提升地址的使用率。 2、DHCP 的优点&#xff…

数据中心的中台前端风格大屏设计开发

数据中心的中台前端风格大屏设计开发

秋招突击——算法打卡——5/28——复习{Z字形变换、两数之和}——新做:{整数反转、字符串转整数}

文章目录 复习Z字形变换实现代码参考代码 两数之和复习代码 新作整数反转个人实现实现代码 参考做法字符串转换整数个人解法 分析总结 复习 Z字形变换 实现代码 这里使用了他的思想&#xff0c;但是没有用他的代码&#xff0c;虽然已经比上次简洁了&#xff0c;但是还是不够&…

【创业新趋势】萤瓴优选,抓住2024年造富新机遇!

​在当下这个充满变革与机遇的时代&#xff0c;创业者们纷纷寻找着下一个造富的新风口。而2024年&#xff0c;一个备受瞩目的创业新星正在冉冉升起——萤瓴优选。这款短视频变现任务App以其独特的 keJ0277 商业模式和创新理念&#xff0c;正引领着创业新趋势&#xff0c;成为众…