算法导论读书笔记(11)

Linux内核完全注释-读书笔记-目录 Linux内核完全注释 声明 此博客为笔者读书笔记,书籍是:《Linux内核完全注释》赵炯编著 写此博客目的: 方便自己复习 提供给大家一个简洁,精华版的Linux内核完全注释 读Linux源码意义何在 这一点不是很好说,而且国内很多童鞋们都认为意义不大,没有对底层知识的认可感和危机感。 这里主要记录我的读书笔记,不对其进行论证,有兴趣可以去了解关于底层知识的重要性。仁者见仁,智者见智,互联... 阅读详情

http://www.cnblogs.com/sungoshawk/p/3661030.html

算法导论读书笔记(11)

散列表简介

在很多应用中,都要用到一种动态集合结构,它仅支持 INSERT , SEARCH 和 DELETE 字典操作。而 散列表 (hash table)就是实现字典的一种有效的数据结构。在最坏情况下,从散列表中查找一个元素的时间与在链表中查找一个元素的时间相同,都是 Θ ( n ),但在实践中,散列技术的效率是很高的。在一些合理的假设下,从散列表中查找一个元素的期望时间是 O ( 1 )。

散列表是普通数组的推广。因为可以对数组进行直接寻址,故可以在 O ( 1 )时间内访问数组的任意元素。如果存储空间允许,我们可以提供一个数组,为每个可能的关键字保留一个位置,就可以应用直接寻址技术。

当实际存储的关键字数比可能的关键字总数小的时候,采用散列表就比直接数组寻址更加有效,因为散列表通常采用的数组尺寸与所要存储的关键字数是成正比的。在散列表中,不是直接把关键字用作数组下标,而是根据关键字计算出下标。

直接寻址表

当关键字的全域 U 比较小时,直接寻址是一种简单而有效的技术。假设某应用要用到一个动态集合,其中每个元素都取自全域 U = { 0, 1, …, m - 1 },并假设元素的关键字各不相同。

可以用数组(或称 直接寻址表 ) T [ 0 .. m - 1 ]表示动态集合,其中每个位置(或称 槽 )对应全域 U 中的一个关键字。下图说明了这个方法;槽 k 指向集合中关键字为 k 的元素。如果该集合中没有关键字为 k 的元素,则 T [ k ] = NIL 。

几个字典操作也很简单:

DIRECT-ADDRESS-SEARCH(T, k)
1 return T[k]
DIRECT-ADDRESS-INSERT(T, x)
1 T[x.key] = x
DIRECT-ADDRESS-DELETE(T, x)
1 T[x.key] = NIL

显而易见,这些操作执行起来只需 O ( 1 )的时间。

散列表

直接寻址技术有一个明显的问题:如果全域 U 很大,那么在内存中存储大小为 | U | 的一张表 T 就有点不实际,甚至是不可能。此外,如果实际要存储的关键字集合 K 相对于 U 来说可能很小,那么因而分配给 T 的大部分空间都要浪费掉。

当存储在字典中的关键字集合 K 比所有可能的关键字域 U 要小很多时,散列表需要的存储空间要比直接寻址表少很多。特别地,在保持仅需 O ( 1 )时间即可在散列表中查找一个元素的好处的情况下,存储要求可以降至 Θ ( | K | )。唯一的问题是这个界是针对平均时间的,而对直接寻址来说,它对最坏情况也成立。

在直接寻址方式下,具有关键字 k 的元素被存放在槽 k 中。在散列方式下,该元素处于 h ( k )中,亦即,利用 散列函数 h ,根据关键字 k 计算出槽的位置。函数 h 将关键字域 U 映射到 散列表 T [ 0 .. m - 1 ]的槽位上:

h : U → { 0, 1, …, m - 1 }

这时,可以说一个具有关键字 k 的元素被 散列 到槽 h ( k )上,或者说 h ( k )是关键字 k 的 散列值 。下图给出了形象的说明。采用散列函数的目的就在于缩小需要处理的下标范围,即我们要处理的值从 | U | 降到 m 了,从而相应地降低了空间开销。

这样做有一个问题:两个关键字可能映射到同一个槽上。这种情形称为 碰撞 (collision)。理想的解决方案是完全避免碰撞。可以考虑选用合适的散列函数 h 。在选择时的一个主导思想,就是使 h 尽可能的“随机”,从而避免或者最小化碰撞。(当然,一个散列函数 h 必须是确定的,即某一给定的输入 k 应始终产生相同的结果 h ( k )。)但是,由于 | U | > m ,故必然有两个关键字的散列值相同,所以想要完全避免碰撞时不可能的。

链接法解决碰撞

链接法 是一种最简单的碰撞解决技术。在链接法中,把散列到同一槽中的所有元素都放在一个链表中。如下图所示,槽 j 中有一个指针,它指向由所有散列到 j 的元素构成的链表的头:如果不存在这样的元素,则 j 中为 NIL 。

相应操作如下:

CHAINED-HASH-INSERT(A, x)
1 insert x at the head of list T[h(x.key)]
CHAINED-HASH-SEARCH(T, k)
1 search for an element with key k in list T[h(k)]
CHAINED-HASH-DELETE(T, x)
1 delete x from the list T[h(x.key)]

链接法散列的分析

给定一个能存放 n 个元素的,具有 m 个槽位的散列表 T ,定义 T 的 装载因子 (load factor) α 为 n / m ,即一个链中平均存储的元素数。我们的分析以α 来表达, α 可以小于,等于或大于 1 。

用链接法散列的最坏情况性能很差:所有的 n 个关键字都散列到同一个槽中,从而产生出一个长度为 n 的链表。这时,最坏情况下查找的时间为 Θ ( n )。

散列方法的平均性态依赖于所选取的散列函数 h 在一般情况下,将所有的关键字分布在 m 个槽位上的均匀程度。此处假设任何元素散列到 m 个槽中每一个的可能性都是相同的,且与其他元素已被散列到什么位置上是独立无关的。称这个假设为 简单一致散列 (simple uniform hashing)。

对于 j = 0, 1, …, m - 1,列表 T [ j ]的长度用 nj 表示,这样有:
n = n0 + n1 + … + nm1
nj
 的平均值为E[ nj ] = α = n / m 。

假定可以在 O ( 1 )时间内算出散列值 h ( k ),从而查找具有关键字 k 的元素的时间线性地依赖于表 T [ h ( k )]的长度 nh(k) 。先不考虑计算散列函数和寻址槽 h ( k )的 O ( 1 )时间,只看为比较元素的关键字是否为 k 而检查的表 T [ h ( k )]中的元素数。共有两种情况:查找成功和查找不成功。

定理
对一个用链接技术来解决碰撞的散列表,在简单一致散列的情况下,一次不成功查找的期望时间为 Θ ( 1 + α )。

定理
在简单一致散列的假设下,对于用链接技术解决碰撞的散列表,平均情况下一次成功的查找需要 Θ ( 1 + α )。

这一结论说明,如果散列表中槽数至少与表中的元素数成正比,则有 n = O ( m ),从而 α = n / m = O ( m ) / m = O ( 1 )。即平均来说,查找操作需要常量时间。又知道插入操作和删除操作在最坏情况下都需要 O ( 1 )时间。因而,全部的字典操作平均情况下都可以在 O ( 1 )时间内完成。

散列函数

下面介绍的是三种设计散列函数的方案。一个好的散列函数应(近似地)满足简单一致散列的假设:每个关键字都等可能地散列到 m 个槽位的任何一个之中去,并与其他的关键字已被散列到哪一个槽位中无关。

除数散列法

在 除数散列法 中,通过取 k 除以 m 的余数,来将关键字 k 映射到 m 个槽的某一个中去。亦即,散列函数为:

h ( k ) = k mod m

当应用除数散列时,要注意 m 的选择,可选的 m 值通常是与 2 的整数幂不太接近的质数。

乘法散列法

乘法散列法 包含两个步骤。第一步,用关键字 k 乘上常数 A (0 < A < 1),并抽取出 k A 的小数部分。然后,用 m 乘以这个值,再取结果的底(floor)。散列函数为:

h ( k ) = FLOOR( m ( k A mod 1 ))

乘法方法的一个优点是对 m 的选择没有什么特别的要求,一般选择它为 2 的幂( m = 2p , p 为某个整数)。

全域散列

任何的散列函数都可能出现最坏情况性态,即 n 个关键字都散列到同一个槽中,使得平均的检索时间为 Θ ( n ):唯一有效的改进方法是随机地选择散列函数,使之独立于要存储的关键字。这种方法称作 全域散列 (universal hashing)。

全域散列 的基本思想是在执行开始时,就从一族仔细设计的函数中,随机地选择一个作为散列函数。随机化保证了没有哪一种输入会始终导致最坏情况性态。同时,随机化使得即使是对同一个输入,算法在每一次执行时的性态也是不一样的。这样就可以确保对于任何输入,算法都具有良好的平均情况性态。

设 H 为有限的一组散列函数,它将给定的关键字域 U 映射到{ 0, 1, …, m - 1 }。这样的一组函数称为是 全域的 (universal),如果对每一对不同的关键字 k , l ∈ U ,满足 h ( k ) = h ( l )的散列函数 h ∈ H 的个数至多为 | U | / m 。换言之,如果从 H 中随机选择一个散列函数,当关键字 k ≠ l 时,两个发生碰撞的概率不大于 1 / m ,这也正是从集合{ 0, 1, …, m - 1 }中随机地,独立地选择 h ( k )和 h ( l )时发生碰撞的概率。

定理
如果 h 选择一组全域的散列函数,并用于将 n 个关键字散列到一个大小为 m 的,用链接法解决碰撞的表 T 中。如果关键字 k 不在表中,则 k 被散列至其中的链表的期望长度E[ nh(k) ]至多为 α 。如果关键字 k 在表中,则包含关键字 k 的链表的期望长度E[ nh(k) ]至多为 1 + α 。

推论
对于一个具有 m 个槽位的表,利用全域散列和链接法解决碰撞,需要 Θ ( n )的期望时间来处理任何包含了 n 个 INSERT , SEARCH , DELETE 操作的操作序列,该序列中包含了 O ( m )个 INSERT 操作。

开放寻址法

在 开放寻址法 (open addressing)中,所有的元素都存放在散列表中。亦即,每个表项或包含动态集合的一个元素,或包含 NIL 。当查找一个元素时,要检查所有的表项,直到找到所需的元素,或最终发现该元素不在表中。该方法的装载因子 α 绝对不会超过 1 。

在开放寻址法中,当要插入一个元素时,可以连续地检查(或称 探查 )散列表的各项,直到找到一个空槽来放置待插入的关键字为止。检查的顺序不一定是 0, 1, …, m - 1 (这种顺序下的查找时间为 Θ ( n )),而是要依赖于待插入的关键字。为了确定要探查哪些槽,应该将散列函数加以扩充,使之包含探查号(从 0 开始)以作为其第二个输入参数。这样,散列函数就变为:

h : U ⅹ { 0, 1, …, m - 1 } → { 0, 1, …, m - 1 }

对开放寻址法来说,要求对每一个关键字 k , 探查序列

< h ( k , 0 ), h ( k , 1 ), …, h ( k , m - 1 ) >

必须是< 0, 1, …, m - 1 >的一个排列,使得当散列表逐渐填满时,每一个表位最终都可以被视为用来插入新关键字的槽。下面是插入和查找的伪码。

HASH-INSERT(T, k)
1  i = 0
2  repeat
3      j = h(k, i)
4      if T[j] == k
5          T[j] == k
6          return j
7      else
8          i = i + 1
9 until i == m
10 error "hash table overflow"
HASH-SEARCH(T, k)
1 i = 0
2 repeat
3     j = h(k, i)
4     if T[j] == k
5         return j
6     i = i + 1
7 until T[j] == NIL or i == m
8 return NIL

在开放寻址法中,对散列表元素的删除操作执行起来比较困难。当我们从槽 i 中删除关键字时,不能仅将 NIL 置于其中来标识它为空。否则就会有个问题:在插入某关键字 k 的探查过程中,发现 i 被占用了,则 k 被插入到后面的位置上。在将槽 i 中的关键字删除后,就无法检索关键字 k 了。解决的办法就是在槽 i 中置一个特定的值 DELETED ,而不用 NIL 。这样要对过程 HASH-INSERT 作相应的修改。当时,当使用特殊值 DELETED 时,查找时间就不再依赖于装载因子 α 了。因此,在必须删除关键字的应用中,往往采用链接法来解决碰撞。

在我们的分析中,作了一个 一致散列 的假设,即假设每个关键字的探查序列是< 0, 1, …, m - 1 >的 m! 种排列中的任一种的可能性是相同的。一致散列将前面定义过的 简单一致散列 的概念加以一般化,推广到散列函数的结果不只是一个数,而是一个完整的探查序列的情形。

在实践中,常用三种技术来计算开放寻址法中的探查序列:线性探查,二次探查,以及双重散列。

线性探查

给定一个普通的散列函数 h ' : U → { 0, 1, …, m - 1 }(称为 辅助散列函数 ), 线性探查 (linear probing)方法采用的散列函数为:

h ( k , i ) = ( h '( k ) + i ) mod m , i = 0, 1, …, m - 1

给定一个关键字 k ,第一个探查的槽是 T [ h '( k ) ],亦即,由辅助散列函数所给出的槽。接下来探查的是槽 T [ h ' ( k ) + 1 ], …,直到槽 T [ m - 1 ],然后又卷绕到槽 T [ 0 ], T [ 1 ], …直到最后探查槽 T [ h ' ( k ) - 1 ]。在线性探查方法中,初始探查位置确定了整个序列,故只有 m 种不同的探查序列。

线性探查方法很容易实现,但它存在一个问题,称作 一次群集 (primary clustering)。随着时间的推移,连续被占用的槽不断增加,平均查找时间也随着不断增加。群集现象很容易出现,这是因为当一个空槽前有 i 个满的槽时,该空槽作为下一个将被占用槽的概率是( i + 1 ) / m 。连续被占用槽的序列将会越来越长,因而平均查找时间也会随之增加。

二次探查

二次探查 (quadratic probing)采用如下形式的散列函数:

h ( k , i ) = ( h ' ( k ) + c1 i + c2 i2 ) mod m

其中 h '是一个辅助散列函数, c1 和 c2 为辅助常数(不等于0), i = 0, 1, …, m - 1。初始的探查位置为 T [ h '( k ) ],后续的探查位置要在此基础上加上一个偏移量,该偏移量以二次的方式依赖于探查号 i 。这种探查方法的效果要比线性探查好很多,但是,如果两个关键字的初始探查位置相同,那么他们的探查序列也是相同的,这是因为 h ( k1 , 0 ) = h ( k2 , 0 )蕴含着 h ( k1 , i ) = h ( k2 , i )。这一性质可导致一种程度较轻的群集现象,称为 二次群集 (secondary clustering)。二次探查也只有 m 个不同的探查序列。

双重散列

双重散列 是用于开放寻址法的最好方法之一,它采用如下形式的散列函数:

h ( k , i ) = ( h1 ( k ) + i h2 ( k ) ) mod m

其中 h1 和 h2 为辅助散列函数。初始探查位置为 T [ h1 ( k ) ],后续的探查位置在此基础上加上偏移量 h2 ( k )模 m 。

为能查找整个散列表,值 h2 ( k )要与表的大小 m 互质。确保这个条件成立的一种方法是取 m 为 2 的幂,并设计一个总产生奇数的 h2 。另一种方法是取m 为质数,并设计一个总是产生较 m 小的正整数的 h2 。

双重散列法中用了 Θ ( m2 )中探查序列。

对开放寻址散列的分析。

对开放寻址散列的分析也是以散列表的装载因子 α = n / m 来表达的。在开放寻址法中,由于每个槽中至多只有一个元素,因而 n <= m ,这意味着 α <= 1 。

定理
给定一个装载因子为 α = n / m < 1 的开放寻址散列表,在一次不成功的查找中,期望的探查数至多为 1 / ( 1 - α )。假设散列是一致的。

如果 α 是一个常数,根据上述定理,一次不成功查找的运行时间为 O ( 1 )。

推论
平均情况下,向一个装载因子为 α 的开放寻址散列表中插入一个元素时,至多需要做 1 / ( 1 - α )次探查。假设散列是一致的。

定理
给定一个装载因子为 α < 1 的开放寻址散列表,一次成功查找中的期望探查数至多为:
( 1 / α ) ln ( 1 / ( 1 - α ))
假定散列是一致的,且表中的每个关键字被查找的可能性是相同的。


《算法导论》深度学习笔记精华 算法是一组定义明确的指令,用于完成特定的任务或解决问题。它是计算机科学的核心,也是软件开发和工程领域不可或缺的组成部分。在IT行业中,优秀的算法往往意味着更高的效率,更好的用户体验以及更优的资源消耗。 阅读详情

相关推荐

使用python读取卫星测高数据并做相应的处理

5.在python处理结果如下,最大的优点就是比matlab快30-40倍。4.进行粗差的如NaN值,还有进行3倍方差进行对粗差处理。1.首先遍历卫星数据的文件,挨个读取每个数据。有问题,请各位读者及时告知,一起完善内容。3.进行下一步,筛选在研究区域的数据。4.进行按天求平均和按月求平均。2.读取数据主体代码。

爱下去更难! 1133

散列表的复杂度

在最坏的情况下查找元素的时间可能是Θ (n) 在大多数情况下这个操作的时间可以被提高到Θ (1)

鸭梨的博客 1672

基于ADS的低噪声放大电路设计

1. 低噪声放大器设计理论基础 1.1 低噪声放大器在通信系统中的作用 低噪声放大器的主要作用是放大天线从空中接收到的微弱信号,减小噪声干扰,以供系统解调出所需的信息数据。当今,人们对于各种无线通信工具的要求越来越高,如功率辐射要小、作用距离要远、覆盖范围要广等,这就对系统的接收灵敏度提出了更高的要求,系统接收灵敏度的计算公式为: Smin⁡=−144(dBmHz)+NF+10lg⁡BW(MHz)+SN(dB) {S_{\min }} = - 144\left( {\frac{{{\rm{dBm}}}}{

ASH_GUARDIAN的博客 4万+

搜索2—散列法

目录 搜索2 散列法 1.简单实现 2.解决冲突 示例 搜索2 散列法 散列法是一种搜索算法,它根据各元素的值来确定存储的位置,然后将位置保存在散列表中,从而实现数据的高速搜索。 散列表是一种数据结构,能够包含对关键数据集合高效地执行动态插入,搜索,删除等操作。、 虽然链表(参考之前的文章)也能进行同样的操作,但搜索和删除的复杂度都高达O(n)。 如果不发生冲突,散列法插入和搜索元素的算法复杂度仅为O(1)。 散列表有容纳n个元素的数组S和根据关键字决定数...

Eternal嘉的博客 1000

华为[ENSP]OSPF的配置实例(单区域+多区域)

华为[ENSP]OSPF的配置实例(单区域+多区域)

weixin_62594100的博客 2万+

SAP特殊采购类80实战:跨工厂生产配置避坑指南(附完整测试流程)

本文深入解析SAP特殊采购类80在跨工厂生产场景下的实战应用与配置要点。文章从核心业务逻辑出发,详细拆解了后台配置、主数据与BOM的“双工厂”思维模式,并提供了从创建需求到成品收货的完整测试流程。重点揭示了多层BOM下的需求传递陷阱及常见报错解决方案,旨在帮助SAP顾问及用户规避实施风险,实现资源的灵活调度与流程自动化。

wind6的博客 1139

散列表总结

如果要转载,需要注明出处:http://blog.youkuaiyun.com/xiazdong 本文整理自《算法导论》第11章,由于本章有一些概率论知识,因此理解起来比较困难,但是一般只要记住结果即可。 我在面试的时候也被问过:“请问哈希冲突的解决方法有哪些?”,这个问题的答案是: 第一种是链接技术,即用双向链表来链接哈希值相同的元素。这种方法能够有良好...

445822357 246

Yolov2 训练时anchor是如何使用的?build_target

0.简略描述 1.将真值检测框变换到特征图尺度上 2.计算以特征图每个网格中心为中心点时所有锚框与真值检测框的交并比 3.取与真值检测框交并比最大的锚框的id,及真值检测框中心所在cell的id,有此,可将真值检测框与预测结果对应起来 4.计算位置回归损失,置信度损失,分类损失 1,网络的输出 图1 yolov2 网络对于检测框位置大小的输出是: 对于1个batch网络的输出的shape为[batch_size, H*W*num_anchors, 5+num_classes], 其中: num_

机器人视觉感知 2818

散列查找

对于散列表的定义,实现,以及冲突的处理,学过数据结构的肯定非常熟悉。下面借助leetcode上一道简单题目来浅谈如何散列进行查找。这是典型的利用空间来换取时间的例子。 问题描述 Given an array of integers, return indices of the two numbers such that they add up to a specific target. ...

CS改变世界 1008

uniapp - 实现集成调用zebra斑马打印机+打印标签+打印二维码详细实例代码,通过蓝牙连接打印机打印与通过打印机IP和端口两种方式适配斑马打印机(全平台兼容H5、微信小程序、苹果安卓App)

uniapp适配斑马打印机 实现标签打印,uniapp适配斑马打印机实现标签打印,uniapp调用zebra斑马打印机打印标签,uniApp连接传统蓝牙的斑马打印机打印,实现标签打印功能uniapp 蓝牙连接斑马打印机发送zpl指令打印,适配斑马(Zebra)牌打印机,小程序调用蓝牙打印机完整代码,uniapp 打印机wifi链接 蓝牙链接,uniapp斑马打印机,实现二维码标签展示以及打印,APP端连接打印机打印小票和标签,uniapp使用斑马打印中文不出来,打印机连接不上,打印没反应怎么办,打印报错,斑

🏆 前端领域优质创作者 1万+

MTK平台WiFi学习--Wi-Fi 连线/断线问题初步分析

摘要:本文详细介绍了MTK平台WiFi连接问题的日志分析方法。文章首先阐述了WiFi连接的标准流程,包括指令接收、BSSID选择、信道分配、认证关联、四次握手和DHCP获取等关键步骤。针对常见故障场景,如选网失败、信道申请失败、认证关联失败、四次握手失败等,提供了具体的日志分析方法和排查思路,包括识别关键日志、分析状态码、结合固件日志和抓包数据等。文章还特别强调了不同故障场景下需要收集的日志类型和分析要点,为WiFi连接问题的定位提供了一套系统化的解决方案。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 1592

算法评测

算法评测 算法评测——复杂度记法 刚才说过,线性查找的计算量为O(n),二分查找的复杂度为O(log n)。大多情况下,算法的复杂度可以这样定量评测。算法评测一般使用复杂度记法(Order...

215

2026.3.13:docker compose运行了Milvus 6个月,占用磁盘近138GB的原因

Docker容器运行Milvus半年后占用138GB磁盘空间,主要原因是容器日志无限增长、容器内写入大量数据未挂载到数据卷,以及未清理临时文件。通过检查发现超大容器目录569035582ce3...占用主要空间。解决方案是使用truncate命令清空容器日志文件(*-json.log),释放磁盘空间。建议配置日志轮转机制,并将数据挂载到宿主机数据卷以避免类似问题。

拥抱具身智能,昇腾Ascend C 194

算法导论读书笔记(11)散列表

第三部分 数据结构第11章 散列表 散列表是普通数组的推广 散列表查找元素的平均时间是O(1) 1. 直接寻址表 当关键字的全域U比较小时,直播寻址是一种简单而有效的技术 为表示动态集合,用一个数组称为直接寻址表,其中每个位置称为槽,对应全域U中的一个关键字 2. 散列表 散列函数,由关键字k计算出槽的位置,函数h将关键字的全域U映射到散列表的槽位上 两个关键字可能映射到同一个槽中,即冲突。最简单的

liujianli的博客 481

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

《算法导论》读书笔记之第11章 散列表

转载:http://www.cnblogs.com/Anker/archive/2013/01/27/2879150.html

似风,无形 831

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

《算法导论》读书笔记(总纲)

《算法导论》读书笔记(总纲))

北观止的博客 1322

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

成功之路oracle 11g读书笔记整理

《成功之路oracle 11g》  这本书我觉得整体来说是给一个初初学习oracle的人看的,看完之后也学会一些知识,感觉不那么充实。 《成功之路》读书笔记 监听器的实例的状态有下面几种: READY---->>>表示实例可以接受连接 BLOCKED--->>>表示实例不能接受连接 READY/SECONDARY---->>>表示这是RAC的第二个实例,准备接受连接 UNKNOWN

elvis的Oracle Lab 1943

《算法导论》读书笔记(一)

《算法导论》读书笔记之第1章 算法在计算机中的作用   本章是本书的开篇,介绍了什么是算法,为什么要学习算法,算法在计算机中的地位及作用。   算法(algorithm)简单来说就是定义良好的计算机过程,它取一个或一组值作为输入,并产生出一个或一组值作为输出。即算法就是一系列的计算步骤,用来将输入数据转换成输出数据。   书中有一句话非常好:   Having a solid base of a...

weixin_33739541的博客 410

Java核心技术第11版读书笔记

给大家分享几本书: 链接:https://pan.baidu.com/s/11j5LObALuhnweFreajp3CA 提取码:gk9p Java核心技术第11版 因为不太喜欢md文档无法截图的功能,我比较喜欢某道云笔记,可以非常方便的截图。 所以我把读书笔记分享到某道云笔记了。下面会给链接: http://note.youdao.com/noteshare?id=18e10b741ae323a2d67a5c1dbcc4d269 我还在不断更新中!!! ...

qq_44182694的博客 1394

《Java核心技术第11版》读书笔记:助你掌握Java编程精髓

《Java核心技术第11版》读书笔记:助你掌握Java编程精髓 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 你是否正在学习Java编程,却苦于找不到系统的学习资料?或者你已经是一名Java开发者,但希望更深入地理解Java的核心技术?《Java核心技术第11版》读书笔记项目正是为你量身打造的!这个开源项目提供了《Java核心技术第11版》的详细读书笔记,涵盖了书籍中...

gitblog_06553的博客 421
上一篇: 算法导论读书笔记(10)
下一篇: 算法导论读书笔记(12)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值