- 博客(6933)
- 资源 (32)
- 问答 (74)
- 收藏
- 关注
原创 希尔排序是一种分组排序方法,组内采用直接插入排序。
1.什么是排序所谓排序,就是要整理表中的元素,使之按关键字递增或递减有序排列,本章仅讨论递增排序的情况,在默认情况下所有的排序均指递增排序。排序的定义如下。输入:n个元素R0、R1、…、Rn—1,其相应的关键字分别为k0、k1、…、kn—1。输出:Ri0,Ri1,…,Rin—1,使得ki0≤ki1≤…≤kin—1。2.内排序和外排序在排序过程中,若整个表都是放在内存中处理,排序时不涉及数据的内、外存交换,则称之为内排序;反之,若排序过程中要进行数据的内、外存交换,则称之为外排序。内排序适用于元素个数不很
2022-03-02 00:06:02
1429
原创 当数据元素只有一个数据项时,其关键字即为该数据元素的值。
在查找表中,所有数据元素的类型相同,在数据元素(或记录)中某个数据项的值可以标识一个数据元素,称该数据项为关键字。若此关键字可以唯一地标识一个数据元素,称该关键字为主关键字,对于不同的数据元素,其主关键字均不同。反之,称用以标识若干数据元素的关键字为次关键字。当数据元素只有一个数据项时,其关键字即为该数据元素的值。查找是对已存入计算机中的数据所进行的一种运算,采用何种查找方法,首先取决于使用哪种数据结构来表示“表”,即表中数据元素是按何种方式组织的。为了提高查找速度,常常用某些特殊的数据结构来组织表,或对
2022-03-02 00:05:55
1311
原创 全国计算机专业数据结构2018年联考大纲
【考查目标】1.掌握数据结构的基本概念、基本原理和基本方法。2.掌握数据的逻辑结构、存储结构及基本操作的实现,能够对算法进行基本的时间复杂度与空间复杂度的分析。3.能够运用数据结构基本原理和方法进行问题的分析与求解,具备采用C或C++语言设计与实现算法的能力。【基本知识点】一、线性表1.线性表的定义和基本操作2.线性表的实现(1)顺序存储;(2)链式存储;(3)线性表的应用。二、栈、队列和数组1.栈和队列的基本概念2.栈和队列的顺序存储结构3.栈和队列的链式存储结构4.栈和队列
2022-03-02 00:05:44
993
原创 对线性表进行顺序查找时,线性表既可以采用顺序存储,也可以采用链式存储
(1)在查找算法中,主要时间花费在关键字比较上,所以查找算法的时间性能可以用平均查找长度表示。而查找分为成功和失败两种情况,所以平均查找长度分为成功情况下的平均查找长度和不成功情况下的平均查找长度。(2)对线性表进行顺序查找时,线性表既可以采用顺序存储,也可以采用链式存储。(3)对线性表进行折半查找时,线性表应该以顺序方式存储,且结点按关键字有序排列。(4)对含有n个元素的有序顺序表进行顺序查找时,算法时间复杂度是O(n)。(5)对含有n个元素的有序顺序表进行折半查找时,算法时间复杂度是O(log2
2022-03-02 00:05:37
2174
原创 构造哈希函数的目标是使得到n个元素的哈希地址尽可能均匀地分布在m个连续内存单元地址上
哈希表存储的基本思路是:设要存储的元素个数为n,设置一个长度为m (m≥n)的连续内存单元,以每个元素的关键字ki(0≤i≤n—1)为自变量,通过一个称为哈希函数的函数h(ki),把ki映射为内存单元的地址(或称下标)h(ki),并把该元素存储在这个内存单元中。h(ki)也称为哈希地址(又称散列地址)。把如此构造的线性表存储结构称为哈希表。但是存在这样的问题,对于两个不同元素的关键字ki和kj(i≠j),有h(ki)=h(kj)。这种现象叫作哈希冲突。通常把这种具有不同关键字而具有相同哈希地址的元素称作“
2022-03-02 00:05:29
411
原创 图的主要存储结构有邻接矩阵和邻接表
(1)图由两个集合组成,G=(V,E),V是顶点的有限集合,E是边的有限集合。(2)在无向图G=(V,E)中,集合E中的元素为无序对。(3)在有向图G=(V,E)中,集合E中的元素为有序对。(4)如果图中从顶点u到顶点v之间存在一条路径,则称u到v是连通的。(5)如果无向图G中任意两个顶点都是连通的,称G为连通图。无向图G的极大连通子图称为G的连通分量。(6)如果有向图G中任意两个顶点都是连通的,称G为强连通图。(7)图的主要存储结构有邻接矩阵和邻接表。(8)无向图的邻接矩阵一定是对称矩阵,但
2022-03-02 00:05:22
570
原创 树适合表示具有层次结构的数据
(1)树适合表示具有层次结构的数据。(2)在一棵树中,根结点没有前驱结点,其余每个结点都有唯一的前驱结点。(3)度为m的树,至少有一个结点的度为m,且没有度大于m的结点。(4)对于含有n个结点的树,无论树的度为多少,其分支数或所有结点度之和均为n—1。(5)对于高度为h的m次树,为满m次树时结点个数最多。(6)树的遍历运算主要有先根遍历、后根遍历和层次遍历三种。(7)树的存储结构主要有双亲存储结构、孩子链存储结构和孩子兄弟链存储结构。(8)二叉树或者是一棵空树,或者是一棵由一个根结点和两棵互不
2022-03-02 00:05:13
1021
原创 每个厂商的SQL实现都针对其数据库服务器进行了增强
过去,计算机业由大型机统治着,它们是体积庞大、功能强悍的系统,具有大容量存储和高速数据处理能力。用户通过哑终端与主机通信,所谓哑终端就是没有处理能力的终端,依靠主机的CPU、外设和内存进行工作。每个终端通过一个数据链连接到主机。主机模式能够很好地实现其设计目的,并且在当今很多领域还在发挥作用,但另一种更伟大的技术出现了:客户端/服务器模型。在客户端/服务器系统里,主机被称为服务器,可以通过网络进行访问(通常是局域网或广域网)。访问服务器的通常是个人计算机(PC)或其他服务器,而不是哑终端。每台个人计算机被
2022-03-02 00:05:05
207
原创 递归算法的设计方法是,先确定对应的递归模型,再将其转换为递归算法
递归算法的设计方法是,先确定对应的递归模型,再将其转换为递归算法。其核心思想是把问题简化分解为几个子问题,其中子问题的形式和算法与原问题算法相似,只是比原来简化。因此,在设计递归算法时,应着重分析递归数据结构的递归运算,充分利用这类运算的特性进行递归设计。获取求解问题的递归模型的一般步骤如下。(1)对原问题f(s)进行分析,假设出合理的“小问题”f(s′)(与数学归纳法中假设n=k—1时等式成立相似);(2)假设f(s′)是可解的,在此基础上确定f(s)的解,即给出f(s)与f(s′)之间的关系(与数
2022-03-01 00:26:18
513
原创 二叉树是一种简单且重要的树状结构,尽管它和前面介绍的树都属于树状结构,但相互之间没有包含关系
二叉树是一种简单且重要的树状结构,尽管它和前面介绍的树都属于树状结构,但相互之间没有包含关系,不能把二叉树看成是一种特殊的树。二叉树的递归定义为:二叉树或者是一棵空树,或者是一棵由一个根结点和两棵互不相交的分别称作根结点的左子树和右子树所组成的非空树,左子树和右子树又同样都是一棵二叉树。在二叉树中,每个结点的左子树的根结点被称为左孩子结点,右子树的根结点被称为右孩子结点。从中看到,左右子树是严格区分的,某个结点即便只有一个孩子结点,也要指出是左孩子结点还是右孩子结点。叶子结点没有任何孩子结点。注意:二叉树
2022-03-01 00:25:44
531
原创 树的遍历运算是指按某种方式访问树中的每一个结点且每一个结点只被访问一次
(1)结点的度。树中每个结点具有的子树数或者后继结点数称为该结点的度。例如,图6.2的树T中结点A的度为3,结点D的度为1。(2)树的度。树中所有结点的度的最大值称为树的度。例如,图6.2的树T的度为3。(3)分支结点。度大于0的结点称为分支结点或非终端结点。度为1的结点称为单分支结点,度为2的结点称为双分支结点,以此类推。(4)叶子结点(或叶结点)。度为零的结点称为叶子结点或终端结点。例如,图6.2的树T中叶子结点是B、H、F、G。(5)孩子结点。一个结点的后继称为该结点的孩子结点。例如,图6.2
2022-03-01 00:23:12
424
原创 数组是线性表的推广,d(d≥1)维数组中存在d个线性关系。
(1)数组是线性表的推广,d(d≥1)维数组中存在d个线性关系。(2)数组通常采用顺序存储方法,分为以行优先和以列优先两种存储方式。(3)特殊矩阵不是指具有特殊用途的矩阵,是指一类元素值分布具有某种规律的矩阵,可以采用压缩存储方法。(4)对称矩阵、三角矩阵和对角矩阵采用压缩存储的目的是节省内存空间。(5)数组通常采用顺序存储结构,具有随机存取特性。(6)稀疏矩阵的压缩存储方式主要有三元组和十字链表表示,前者属顺序存储结构,后者属链式存储结构。(7)稀疏矩阵采用三元组或十字链表压缩存储方式后,不再
2022-03-01 00:20:32
383
原创 字符串简称为串,串的处理在计算机非数值计算中占有重要的地位,如信息检索系统、文字编辑等都是以字符串数据作为处理对象
字符串简称为串,串的处理在计算机非数值计算中占有重要的地位,如信息检索系统、文字编辑等都是以字符串数据作为处理对象。本章介绍串的概念、存储结构和基本运算的实现算法。串是由零个或多个字符组成的有限序列,一般记为:str="a1a2…an"(n≥0),其中,str是串名,用双引号括起来的字符序列是串的值;ai(1≤i≤n)可以是字母、数字或其他字符,该字符的逻辑序号为i。串中的字符个数n称为串的长度。长度为零的串称为空串,它不含任何字符。说明:串可以看成是一个特殊的线性表,其特殊性体现在串中元素只能是字符,而线
2022-03-01 00:16:10
311
原创 无论是顺序队还是链队,进队和出队运算的时间复杂度均为O(1)。
(1)栈和队列的共同点是,它们的数据元素都呈线性关系,且只允许在端点处插入和删除元素。(2)栈是一种“后进先出”或者“先进后出”的数据结构,只能在一端进行元素的插入和删除。(3)栈可以采用顺序栈和链栈两类存储结构。(4)n个不同元素的进栈顺序和出栈顺序不一定相同。(5)在顺序栈中,通常用栈顶指针指向栈顶元素,栈顶指针类型为int类型。(6)在顺序栈中,进栈和出栈操作不涉及栈中其他元素的移动。(7)无论是顺序栈还是链栈,进栈和出栈运算的时间复杂度均为O(1)。(8)队列是一种“先进先出”或者“后
2022-03-01 00:09:00
2278
原创 栈和队列是两种特殊的线性表,从数据逻辑结构角度看,栈和队列的元素均呈现一种线性关系
栈和队列是两种特殊的线性表。从数据逻辑结构角度看,栈和队列的元素均呈现一种线性关系;从运算的角度看,栈和队列是操作受限的线性表。本章介绍栈和队列的概念、存储结构和基本运算的实现算法。栈是一种特殊的线性表,其特殊性体现在元素插入和删除运算上,它的插入和删除运算仅限定在表的某一端进行,不能在表中间和另一端进行。允许进行插入和删除的一端称为栈顶,另一端称为栈底。栈的插入操作称为进栈(或入栈),删除操作称为出栈(或退栈)。处于栈顶位置的数据元素称为栈顶元素。不含任何数据元素的栈称为空栈。正是这种受限的元素插入和删
2022-03-01 00:07:11
2635
原创 设计一个算法,判断顺序表L中所有元素是否是递增有序的。
(1)设计一个算法,判断顺序表L中所有元素是否是递增有序的。(2)设计一个算法,将顺序表L的所有元素逆置,要求算法空间复杂度为O(1)。(3)有一个非空整数顺序表L,其中元素值可能重复出现,设计一个算法,在最后一个最大值元素之后插入一个值为x的元素。(4)设计一个算法,通过相邻两个元素交换的方法将非空顺序表L中最大元素移到最后面(假设最大元素唯一)。(5)设计一个算法删除单链表L中第一个值为x的结点。(6)设计一个算法判定单链表L的所有结点值是否是递增的。(7)有一个整数单链表A,设计一个算法,
2022-03-01 00:04:22
6841
3
原创 线性表是由n(n≥0)个数据元素组成的有限序列,所有元素类型相同,元素之间呈现线性关系
(1)线性表是由n(n≥0)个数据元素组成的有限序列,所有元素类型相同,元素之间呈现线性关系,即除开始元素外,每个元素只有唯一的前驱,除终端元素外,每个元素只有唯一的后继。(2)顺序表采用数组存放元素,既可以顺序查找(依序查找),也可以随机查找(对于给定的序号i,在常量时间内找到对应的元素值)。(3)分配给顺序表的内存单元地址必须是连续的。(4)从一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动n—i个元素,所以删除算法的时间复杂度为O(n)。(5)在一个长度为n的顺序表中插入第i个
2022-03-01 00:03:33
1589
原创 线性表是由n(n≥0)个相同类型数据元素组成的有限序列
线性表是由n(n≥0)个相同类型数据元素组成的有限序列。当n=0时为空表,记为()或Φ;当n>0时,线性表的逻辑表示为(al,a2,…,ai,…,an),也可以用如图2.1所示的逻辑结构图表示。在线性表逻辑表示中,al称为开始元素,an称为终端元素(或尾元素)。元素ai在线性表中的逻辑序号或位置为i。对于任意一对相邻元素<ai,ai+1> (1≤i≤n),ai称为ai+1的前驱元素(或结点),ai+1称为ai的后继元素。线性表的逻辑特征是:若至少含有一个元素,则只有唯一的开始元素和终端元素,
2022-03-01 00:01:34
1956
原创 一种数据逻辑结构可以映射成多种存储结构,同一运算定义不仅在不同的存储结构上实现可以对应多种算法
一个数据结构程序用于求解一个数据结构问题,其设计的一般步骤如下。第一步:分析求解问题的数据和求解功能,采用抽象数据类型来描述求解问题,主要包括数据逻辑结构和运算定义。第二步:设计逻辑结构对应的存储结构。第三步,在存储结构上设计实现运算定义的算法。一种数据逻辑结构可以映射成多种存储结构,同一运算定义不仅在不同的存储结构上实现可以对应多种算法,而且在同一种存储结构上实现也可能有多种算法,那么哪一个算法更好呢?从前面的介绍看出,算法的评价标准就是算法占用计算机资源的多少,占用计算机资源越多的算法就越坏,
2022-02-28 23:59:39
725
原创 一个算法的存储量包括形参所占空间和临时变量所占空间等
一个算法的存储量包括形参所占空间和临时变量所占空间等。在对算法进行存储空间分析时,只考察临时变量所占空间,如图1.21所示,其中临时空间为变量i、maxi占用的空间。所以,空间复杂度是对一个算法在运行过程中临时占用的存储空间大小的量度,一般也作为问题规模n的函数,以数量级形式给出,记作:S(n)=O(g(n)),其中,“O”的含义与时间复杂度中的含义相同若所需临时空间相对于输入数据量来说是常数,则称此算法为原地工作或就地工作。若所需临时空间依赖于特定的输入,则通常按最坏情况来考虑。为什么算法占用的空间只考
2022-02-28 23:58:33
623
原创 计算机资源主要包括计算时间和内存空间
计算机资源主要包括计算时间和内存空间。算法分析是分析算法占用计算机资源的情况,所以算法分析的两个主要方面是分析算法的时间复杂度和空间复杂度,其目的不是分析算法是否正确或是否容易阅读,主要是考察算法的时间和空间效率,以求改进算法或对不同的算法进行比较。那么如何评价算法的效率呢?通常有两种衡量算法效率的方法:事后统计法和事前分析估算法。前者存在这些缺点:一是必须执行程序,二是存在其他因素掩盖算法本质。所以下面均采用事前分析估算法来分析算法效率。一个算法用高级语言实现后,在计算机上运行时所消耗的时间与很多因素有
2022-02-28 23:57:38
658
原创 在数据结构中,抽象数据类型(Abstract Data Type,ADT)是指一个数学模型以及定义在此数学模型上的一组操作
在数据结构中,抽象数据类型(Abstract Data Type,ADT)是指一个数学模型以及定义在此数学模型上的一组操作。抽象数据类型需要通过固有数据类型(高级编程语言中已实现的数据类型)来实现。对一个抽象数据类型进行定义时,必须给出抽象数据类型名称和包含的运算名称及其功能描述。一旦定义了一个抽象数据类型并具体实现,程序设计中就可以像使用基本数据类型那样,十分方便地使用该抽象数据类型。从数据结构的角度看,一个求解问题可以通过抽象数据类型来描述,也就是说,抽象数据类型对一个求解问题从逻辑上进行了准确的定义
2022-02-28 23:55:54
654
原创 数据类型是高级程序设计语言中的一个基本概念
数据运算就是施加于数据的操作。数据运算包括运算定义和运算实现两部分,前者描述运算的功能,是抽象的,后者是在存储结构上设计对应运算的实现算法,是具体的。这种将运算定义和运算实现相互分离的做法即软件工程的思想,更加便于软件开发。在数据结构中,运算实现与数据存储结构密切相关,选用好的存储结构可以提高运算实现的效率。数据类型是高级程序设计语言中的一个基本概念,它和数据结构的概念密切相关。一方面,在程序设计语言中,每一个数据都属于某种数据类型。数据类型显式或隐含地规定了数据的取值范围、存储方式以及允许进行的运算。
2022-02-28 23:54:14
496
原创 索引存储结构是在存储数据(称为主数据表)的同时,还建立附加的索引表
索引存储结构是在存储数据(称为主数据表)的同时,还建立附加的索引表。索引表中的每一项称为索引项,索引项的一般形式如下:(关键字,对应地址)在索引表中,所有关键字有序排列(如递增),每个关键字的对应地址为该关键字的记录在数据表中的存储地址。索引存储结构的优点是查找效率高,其缺点是需要建立索引表,从而增加了时间和空间开销。哈希存储结构根据元素的关键字来确定其存储地址。具体做法是:以元素的关键字为自变量,通过某个哈希函数H(key)(或散列函数)计算出对应的函数值,再把该函数值当作该元素的存储地址。对于
2022-02-28 23:52:59
775
原创 数据逻辑结构在计算机存储器中的表示称为数据的存储结构
数据逻辑结构在计算机存储器中的表示称为数据的存储结构(或存储表示),也称为物理结构。通常情况下,同一种逻辑结构可以设计多种存储结构,在不同的存储结构中,实现同一种运算的算法可能不同。逻辑结构、存储结构和运算三者之间的关系如图1.5所示。把数据对象存储到计算机中时,通常要求既要存储各数据元素,又要存储数据元素之间的逻辑关系。在实际应用中,数据的存储方法是灵活多样的,可根据问题规模(通常是指元素个数的多少)和运算种类等因素适当选择。下面简要介绍主要的几种存储结构。1.顺序存储结构顺序存储结构是采用一组连续
2022-02-28 23:51:29
2226
原创 数据元素之间的逻辑关系的整体称为数据的逻辑结构
数据元素之间的逻辑关系的整体称为数据的逻辑结构。现实中,数据元素的逻辑关系千变万化,而数据结构课程中讨论的逻辑关系主要是指数据元素之间的相邻关系,如果两个数据元素是相邻的,说明它们之间是有关系的,否则它们之间没有关系。实际上,这种相邻关系处理方法很容易推广到其他复杂关系的处理。根据数据元素之间逻辑关系的不同特性,分为下列4类基本结构。(1)集合:包含的所有数据元素同属于一个集合(数据元素之间没有关系,集合是一种最松散的逻辑结构)。(2)线性结构:包含的数据元素之间存在一对一的关系。(3)树状结构:包含
2022-02-28 23:49:23
4280
原创 数据是信息的载体,能够被计算机识别、存储和加工处理,数据包括文字、表格、图像等
数据是信息的载体,能够被计算机识别、存储和加工处理,数据包括文字、表格、图像等。例如,某个班的全部学生记录、az的字母集合、11000的所有素数等都是数据。信息是数据的内涵,即数据所表达的意义,例如,通过统计后产生某课程的平均分85,这里85是数据,表示某课程平均分的信息数据的基本单位是数据元素(有时称为元素、结点或记录等),通常把数据元素作为一个整体进行处理。例如,一个班的学生数据包括张三、李四等数据元素。数据对象是具有相同类型的数据元素的集合,因为所有数据元素类型相同时处理起来更加方便,所以在数据结构中
2022-02-28 23:45:13
4051
原创 IE5.5发明了文档模式的概念,即可以使用doctype切换文档模式
IE5.5发明了文档模式的概念,即可以使用doctype切换文档模式。最初的文档模式有两种:混杂模式(quirks mode)和标准模式(standards mode)。前者让IE像IE5一样(支持一些非标准的特性),后者让IE具有兼容标准的行为。虽然这两种模式的主要区别只体现在通过CSS渲染的内容方面,但对JavaScript也有一些关联影响,或称为副作用。本书会经常提到这些副作用。IE初次支持文档模式切换以后,其他浏览器也跟着实现了。随着浏览器的普遍实现,又出现了第三种文档模式:准标准模式(almos
2022-02-22 20:12:44
127
原创 在配置浏览器请求外部文件时,要重点考虑的一点是它们会占用多少带宽
虽然可以直接在HTML文件中嵌入JavaScript代码,但通常认为最佳实践是尽可能将JavaScript代码放在外部文件中。不过这个最佳实践并不是明确的强制性规则。推荐使用外部文件的理由如下。可维护性。JavaScript代码如果分散到很多HTML页面,会导致维护困难。而用一个目录保存所有JavaScript文件,则更容易维护,这样开发者就可以独立于使用它们的HTML页面来编辑代码。缓存。浏览器会根据特定的设置缓存所有外部链接的JavaScript文件,这意味着如果两个页面都用到同一个文件,则该文件...
2022-02-22 20:10:25
290
原创 异步脚本保证会在页面的load事件前执行,但可能会在DOMContentLoaded之前或之后
HTML5为html><html> <head> <title>Example HTML Page</title> <script async src="example1.js"></script> <script async src="example2.js"></script> </head> <body> <!--这里是页面内容-->
2022-02-22 19:46:12
200
原创 将JavaScript插入HTML的主要方法是使用<script>元素
将JavaScript插入HTML的主要方法是使用要嵌入行内JavaScript代码,直接把代码放在<script>元素中就行:<script>function sayHi() { console.log("Hi!"); }</script>包含在<script>内的代码会被从上到下解释。在上面的例子中,被解释的是一个函数定义,并且该函数会被保存在解释器环境中。在<script>元素中的代码被计算完成之前,页面的其余内容不会被加载
2022-02-22 19:42:31
787
原创 IE3和Netscape Navigator 3提供了浏览器对象模型(BOM) API,用于支持访问和操作浏览器的窗口
IE3和Netscape Navigator 3提供了浏览器对象模型(BOM) API,用于支持访问和操作浏览器的窗口。使用BOM,开发者可以操控浏览器显示页面之外的部分。而BOM真正独一无二的地方,当然也是问题最多的地方,就是它是唯一一个没有相关标准的JavaScript实现。HTML5改变了这个局面,这个版本的HTML以正式规范的形式涵盖了尽可能多的BOM特性。由于HTML5的出现,之前很多与BOM有关的问题都迎刃而解了。总体来说,BOM主要针对浏览器窗口和子窗口(frame),不过人们通常会把任何特
2022-02-22 19:40:30
289
原创 DOM Level 1的目标是映射文档结构,而DOM Level 2的目标则宽泛得多
在IE4和Netscape Navigator 4支持不同形式的动态HTML(DHTML)的情况下,开发者首先可以做到不刷新页面而修改页面外观和内容。这代表了Web技术的一个巨大进步,但也暴露了很大的问题。由于网景和微软采用不同思路开发DHTML,开发者写一个HTML页面就可以在任何浏览器中运行的好日子就此终结。为了保持Web跨平台的本性,必须要做点什么。人们担心如果无法控制网景和微软各行其是,那么Web就会发生分裂,导致人们面向浏览器开发网页。就在这时,万维网联盟(W3C,World Wide Web
2022-02-22 19:38:47
114
原创 ECMAScript,即ECMA-262定义的语言,并不局限于Web浏览器
ECMAScript,即ECMA-262定义的语言,并不局限于Web浏览器。事实上,这门语言没有输入和输出之类的方法。ECMA-262将这门语言作为一个基准来定义,以便在它之上再构建更稳健的脚本语言。Web浏览器只是ECMAScript实现可能存在的一种宿主环境(host environment)。宿主环境提供ECMAScript的基准实现和与环境自身交互必需的扩展。扩展(比如DOM)使用ECMAScript核心类型和语法,提供特定于环境的额外功能。其他宿主环境还有服务器端JavaScript平台Node.
2022-02-22 19:19:16
1591
1
原创 1995年,JavaScript问世,JavaScript逐渐成为市面上所有主流浏览器的标配
1995年,JavaScript问世。当时,它的主要用途是代替Perl等服务器端语言处理输入验证。在此之前,要验证某个必填字段是否已填写,或者某个输入的值是否有效,需要与服务器的一次往返通信。网景公司希望通过在其Navigator浏览器中加入JavaScript来改变这个局面。在那个普遍通过电话拨号上网的年代,由客户端处理某些基本的验证是让人兴奋的新功能。缓慢的网速让页面每次刷新都考验着人们的耐心。从那时起,JavaScript逐渐成为市面上所有主流浏览器的标配。如今,JavaScript的应用也不再局限
2022-02-22 19:16:40
553
原创 “美国国家标准化组织(ANSI)”是一个核准多种行业标准的组织,我们可以把数据库看成这样一种有组织的机制
当今时代的任何事务都涉及数据,人们需要使用某种有组织的方法或机制来管理和检索数据。如果数据被保存在数据库中,这种机制便被称为数据库管理系统(DBMS)。数据库管理系统已经产生多年了,其中大多数源自于大型机上的平面文件系统。随着技术的发展,在不断增长的商业需要、不断增加的共用数据和互联网的推动下,数据库管理系统的使用已经偏离了其原始方向。信息管理的现代浪潮主要是由关系型数据库管理系统(RDBMS)实现的,后者是从传统DBMS派生出来的。现代数据库与客户端/服务器或Web技术相结合在当今是很常见的模式,公司
2022-02-10 22:36:16
537
原创 数据管理技术的发展经历了人工管理和文件管理阶段之后,大约在20世纪60年代进入了数据库管理阶段
数据管理技术的发展经历了人工管理和文件管理阶段之后,大约在20世纪60年代进入了数据库管理阶段。早期的数据库系统按照存储模型可以分为层次数据模型(Hierarchical Data Model)和网状数据模型(Network Data Model)。层次数据模型使用树状结构表示数据对象以及它们之间的联系,类似于现代操作系统中的文件目录结构。层次模型是数据库系统中最早出现的数据模型,典型的代表是IBM公司的IMS(Information Management System)数据库。网状数据模型采用网状结构
2022-02-10 22:24:40
719
原创 redis没有直接使用C语言传统的字符串表示,而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型
Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组,以下简称C字符串),而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS用作Redis的默认字符串表示。在Redis里面,C字符串只会作为字符串字面量(string literal)用在一些无须对字符串值进行修改的地方,比如打印日志:redisLog(REDIS_WARNING,"Redis is now ready to exit, bye bye...");当Redi
2022-02-10 22:05:26
836
原创 对经常需要查询且变化不是很频繁的数据,或者一些设备的实时状态数据进行缓存
为什么要使用某技术?大部分人遇到新技术或服务时,要么嗤之以鼻,要么勇敢面对。其实任何技术或服务提供的特性和功能可以满足当前的需求或解决棘手的问题时就会被选择。在大多数情况下,采用某种技术的原因可能不是那么清晰明了,有时被夸大或被难以理解的营销术语所掩盖。是否选择Redis最终要根据自己的需求来决定(花费更少的代价换取更大的利益),它确实不在市场显而易见的范围之内,但是更接近市场。可能有读者已经知道Redis并将其用于某些用途,例如满足应用程序的数据存储需求或其他服务,但是可能不了解Redis可以做的所有事情
2022-02-10 21:58:55
398
原创 Redis是内存数据库,但是数据放在内存中是不安全的
Redis的简单稳定主要体现在以下几个方面:·Redis使用单线程模型。这样不仅使Redis服务端处理模型变得简单,也使客户端开发变得简单,需要强调的是在Redis 6版本中实质执行命令线程还是单线程(后面会单独说明)。·Redis源码较少。·Redis不需要依赖于操作系统中的类库,比如Memcache需要依赖libevent这样的系统类库。2.Redis运行速度快·Redis的所有数据都是存放在内存中的,这也是其运行速度快的重要原因。·Redis是用C语言实现的(C语言编写的程序距离操作系统更近
2022-02-10 21:54:37
3074
大数据与分布式计算.pptx
2020-09-10
Java程序设计之网络编程.docx
2020-05-31
SpringMVC.pptx
2020-05-31
有5个人坐在一起,问第五个人多少岁.docx
2020-05-30
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数.docx
2020-05-30
兔子的规律为数列1,1,2,3,5,8,13,21.docx
2020-05-30
输入两个正整数m和n.docx
2020-05-30
求s=a+aa+aaa+aaaa+aa...a的值.docx
2020-05-30
判断101-200之间有多少个素数,并输出所有素数。.docx
2020-05-30
利用for循环控制100-999个数.docx
2020-05-30
将一个正整数分解质因数.docx
2020-05-30
猴子吃桃问题:猴子第一天摘下若干个桃子.docx
2020-05-30
java性能的优化.pdf
2020-05-07
在屏幕上画出余弦函数cos(x)曲线.docx
2020-05-07
根据输入行数,打印出杨辉三角形.docx
2020-05-07
打印心形图案.docx
2020-05-07
九九乘法表.docx
2020-05-07
国际象棋棋盘.docx
2020-05-07
奥运五环旗.docx
2020-05-07
J2EE部署概念.pdf
2020-05-07
HTML5开发.pdf
2020-05-07
JAVA_weblogic企业级技术.pdf
2020-05-07
javascript高级编程网络安全性.pdf
2020-05-07
Java语言.pdf
2020-04-07
Redis到底会不会丢数据?在生产环境中怎么配置合理的持久化策略?
2022-02-10
mysql ”Invalid use of null value“ 解决方法?
2021-10-14
mysql中的unsigned是什么意思?
2021-10-12
SQL 语句中 exists和not exists的用法?
2021-10-12
了解浏览器缓存机制吗?
2021-10-08
abstract class和interface有什么区别?
2021-10-08
我们如何监视所有 Spring Boot 微服务?
2021-10-08
您使用了哪些 starter maven 依赖项?
2021-10-08
什么情况下会发生栈内存溢出?
2021-10-08
Lock 与 Synchronized 的区别?
2021-10-07
@SpringBootApplication注释在内部有什么用处?
2021-10-07
如何实现 Spring Boot 应用程序的安全性?
2021-10-06
Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法 ?
2021-10-06
如何集成 Spring Boot 和 ActiveMQ?
2021-10-06
lucence 索引和搜索内部结构是什么?
2021-10-06
乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
2021-10-06
内部类可以引用它的包含类的成员吗?有没有什么限制?
2021-10-06
Redis 支持五种数据类型?
2021-10-05
垃圾回收的优点和原理?并考虑2种回收机制?
2021-10-05
如何使用 Spring Boot 实现分页和排序?
2021-10-04
说说&和&&的区别?
2021-10-03
BIO、NIO、AIO 有什么区别?
2021-10-03
接口和抽象类有什么区别?
2021-10-03
解释基于注解的切面实现?
2021-10-03
SQL语句主要可以划分为以下几类?
2021-10-01
Mybatis 是如何进行分页的?分页插件的原理是什么?
2021-09-30
Http请求的Get和Post的区别?
2021-09-30
linux 当前系统支持的所有命令的列表?
2021-09-30
BASH和DOS之间的基本区别是什么?
2021-09-30
Java中实现多态的机制是什么?
2021-09-29
Java编程进程和线程的区别?
2021-09-29
什么情况会阻塞渲染?
2021-09-28
组件间通信,vuex组成和原理?
2021-09-28
了解浏览器缓存机制吗?
2021-09-28
分布式开发TCP和UDP协议是什么?
2021-09-28
事务保证一组原子性的操作,要么全部成功,要么全部失败?
2021-09-28
二分查找和冒泡排序?
2021-09-28
前端开发react和vue的区别?
2021-09-28
InnoDB一棵B+树可以存放多少行数据?
2021-09-28
Java编程算法和数据结构?
2021-09-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人