软件基础知识整理.docx
《软件基础知识整理.docx》由会员分享,可在线阅读,更多相关《软件基础知识整理.docx(17页珍藏版)》请在冰豆网上搜索。
![软件基础知识整理.docx](https://file1.bdocx.com/fileroot1/2022-12/7/a7642f81-adc8-4206-892f-7805c96e7696/a7642f81-adc8-4206-892f-7805c96e76961.gif)
软件基础知识整理
第一章
1、信息的概念
(1)信息是对现实世界中存在的客观实体、现象、关系进行描述的数据;
(2)信息是消息;
(3)信息是知识;
(4)信息是经过加工后并对实体的行为产生影响的数据。
数据的概念:
是现实世界客观存在的实体或事物的属性值,表现为人们感官听到的事实和看到的景象;
2、数据和信息的关系
信息是有一定含义的数据;
信息是经过加工(处理)后的数据;
信息是对决策有价值的数据;
3、信息产品的三个层次:
数据——数据采集,用于事物处理系统;
信息——数据处理,用于管理信息系统;
知识—-信息融合,用于决策支持系统.
4、信息技术(informationtechnology,IT)
主要由计算机硬件技术、计算机软件技术和通信技术三大部分组成.
5、硬件系统:
由运算器、控制器、存储器、输入设备、
输出设备组成;
其中,运算器和控制器合为中央处理器,简称CPU;
6、计算机系统定义为有硬件系统和软件系
统两部分组成;
7、软件和程序区别
软件(software):
是指计算机程序、方法、规则的文档以及在计算机上运行它时必须数据的集合。
程序(program):
⏹为实现特定目标或解决特定问题而用计算机语言编
写的命令序列的集合;
⏹是人们求解问题的逻辑思维活动的代码化描述;
⏹程序的要便于阅读、交流.
软件按功能分为系统和应用软件
8、系统软件
控制与协调计算机及外设,支持应用软件的开发和运行的软件系统。
包括操作系统、编译程序、诊断程序、系统服务程序、语言处理程序、数据库管理系统和网络管理程序等.
一般是在计算机系统购买时随机携带的,也可以根据需要另行安装;
系统软件的主要特征是:
与硬件有很强的交互性;
能对资源共享进行调度管理;
能解决并发操作处理中存在的协调问题;
其中的数据结构复杂,外部接口多样化,便于用户反复使用。
9、应用软件
应用软件是为满足用户不同领域、不同问题的应用需求而提供的那部分软件。
是直接服务于用户的软件系统;
可分为通用性工具软件和专用软件;
它可以拓宽计算机系统的应用领域,放大硬件的功能;
应用软件具有无限丰富和美好的开发前景。
10、软件危机体现
⏹软件开发进度难以预测;
⏹软件开发成本难以控制;
⏹用户对软件功能难以满足;
⏹软件产品质量无法保证;
⏹软件产品难以维护;
⏹软件通常缺少适当的文档资料
11、三种语言的区别
机器语言
是机器指令的集合,其代码由0、1组成的二进制串表示,不需翻译可直接为机器所接受.
汇编语言
符号化的机器语言.它用助记符和标识符代替机器指令的操作码和地址码
高级语言
是一种与具体的计算机指令系统无关、独立于计算机类型、且表达方式接近于自然语言或数学语言、容易被人们掌握和书写的语言。
如C,Pascal,java等.
12、翻译程序
是把甲种语言程序翻译为等价的乙种语言程序的程序。
其中,甲种语言称为源语言。
乙种语言称为目标语言。
●汇编程序
若源语言是汇编语言,目标语言是机器语言,则该翻译程序被称为汇编程序。
●编译程序
若源语言是高级语言,目标语言是汇编语言或机器语言,则该翻译程序被称为编译程序。
●解释程序
是翻译程序的另一种形式,它对源程序的语句边解释边执行,不产生目标程序
第二章
算法和数据结构是程序的两个重要方面
1、算法中某一具体语句在算法的运行过程中执行的次数即为该语句的频度,记做F(n);
时间复杂度是以算法中频度最大的语句来度量的,可记做T(n)=O(F(n))。
2、算法的空间复杂度分析,是指对该算法在执行过程中所需辅助空间大小的分析。
3、算法特性
算法是对特定问题的求解步骤的一种描述,是指令的有限序列。
作为算法,有以下几个基本特性:
1)有穷性,每条指令执行的次数与时间都是有限的,必须在若干步之后终止;
2)确定性,每条指令的含义明确,不能存在二义,即在相同条件下的结果唯一;
3)可行性,算法所描述的操作可以通过有限的基本操作实现;
4)输入,算法应当有0个或多个输入;
5)输出,算法也应当有1个或多个输出.
算法描述
算法描述即用某种描述语言或方法来表达算法,或选用某一种高级语言在计算机上实现。
常用的算法描述语言有:
1)自然语言描述,即用人们日常使用的语言来描述算法;
2)程序流程图描述,即用一组几何图形表示各种类型的操作,在图形上用扼要的文字和符号表示具体的操作,并用带有箭头的流线表示操作的先后次序。
4迭代法一般用于求方程的近似根的算法设计
5、递推法是利用问题本身所具有的一种递推关系求问题解的一种方法。
6、在递归的定义中至少要有一条是非递归的,做为递归的终止条件,即边界条件。
第三章
1、数据结构(datastructure):
数据元素和数据元素关系的集合,是指同一数据对象中个数据元素间存在的关系.
数据元素(dataelement):
是数据的基本单位,是数据集合中的一个个体;亦称节点(node)或记录(record);
数据(data):
是信息的载体,是可以用计算机表示并加工的各种“符号”的集合;
数据项(dataitem):
有独立含义的数据最小单位,也称域(field);
数据对象(dataobject):
有相同性质的数据元素的集合;
2、数据结构研究的主要问题
1)数据的逻辑结构:
是指数据元素及其关系的数学特性,反映数据之间的逻辑关系。
三种基本结构:
线性结构:
数据元素存在着线性(一对一)的关系;
树形结构:
数据元素存在着层次(一对多)的关系;
图形结构:
数据元素存在着任意(多对多)的关系。
2)数据的存储结构:
数据在计算机内部的存储方式。
3)数据的操作:
数据的操作即是对数据进行的处理
***3、数据结构的三个方面
1.数据的逻辑结构
2.数据的存储结构
3.数据的运算:
检索、排序、插入、删除、修改等
4、线性表的存储结构
采用顺序存储结构,称之为顺序表,亦为向量;
5、顺序表和链表的比较
(1)线性表的长度
顺序表的存储空间是静态分配的,故其上、下界是固定的,若执行过程中表长需要发生变化(插入、删除),就要留足空间,从而产生浪费,又可能因为不足而使表产生溢出。
在表长经常发生变化时,采用链表很方便。
(2)线性表的主要操作
顺序表连续存放,可随机存取表中任何记录,适于频繁的查找操作的表,但是进行插入、删除、移动时,就很不方便。
链表进行查找时,只能顺序从首指针起,比较浪费时间,但是插入、删除运算时,只需要较小的时间就可完成,但是其每一数据元素,多一指针域,浪费存储空间。
(3)高级语言实现
有些高级语言不支持指针,自然只能采用顺序表。
6、堆栈定义:
限定只能在表的一端进行插入和删除运算的特殊的线性表。
其集合论的定义方法与线性表基本相同。
7、队定义:
一种特殊的线性结构,限定只能在表的一端进行插入,在表的另一端进行删除的线性表。
为什么使用循环队列:
为了解决假溢出问题
8、循环队列:
将头尾连接成一个环,形成的队列就是循环队列
9、数组概念
数组是线性表的推广,可以将之看成是一种特殊的线性表,即线性表中数据元素本身也是一个线性表。
10、稀疏定义:
非零元较零元少,且分布没有一定规律的矩阵.
11、为了便于通过三元组法访问稀疏矩阵中的元素,通常附设两个向量POS和NUM,称为行辅助向量
伪地址表示法是通过本元素在矩阵中(含0元素)按行优先顺序的相对位置
12、带行指针向量的单链表
设置一个行指针向量,向量中每个元素为一个指针,指向本行矩阵的第一个非0元素节点,若本行无非0元素,则指针为空。
矩阵中每一个非0元素由三个数据域,列、元素值以及指向本行下一个非0结点的指针,同一行的非0元素构成一个单链表。
13、树的常用术语
结点(Node):
树中的元素,含数据项及若干指向其子树的指针;
结点的度(Degree):
结点拥有的子树数。
树中最大结点的度数称为树的度数;
结点的层次(Level):
从根结点开始算起,根为第一层;
叶子(Leaf):
度为零的结点,也称端结点;
孩子(Child):
结点子树的根称为该结点的孩子结点;
兄弟(Sibling):
同一双亲的孩子;
双亲(Parent):
孩子结点的上层结点;
深度(Depth):
树中结点的最大层次数。
森林(Forest):
M棵互不相交的树的集合。
有序树:
树中结点在同层中按从左到右有序排列、不能互换的称为有序树,反之,称为无序树。
14、结点同构型:
每个结点的指针域数目均为树的度数.运算方便,浪费空间.
15二叉树定义:
二叉树是n(n≥0)个结点的有限集,它或为空树(n=0),或由一个根结点和两棵分别称为左子树和右子树的互不相交的二叉树构成。
16、二叉树的基本性质
1)二叉树的第i层上至多有2i-1(i≥1)个结点;
2)深度为h的二叉树中至多含有2h–1个结点;
3)若在任意一棵二叉树中,有n0个叶子结点,有n2个度为2的结点,则:
n0=n2+1。
17、1)满二叉树
特点:
深度为h且含有2h-1个结点的二叉树,为满二叉树。
图示满二叉树,结点编号为自上而下,自左而右。
2)完全二叉树
特点:
指深度为k的,有n个结点的,且每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应,完全一致,则为完全二叉树。
3)平衡二叉树
特点:
又称AVL树,它或为一棵空树,或具如下性质:
其左子树和右子树都是平衡二叉树,且左、右子树的深度之差的绝对值不超过1。
左、右子树的深度之差为平衡因子,平衡二叉树的平衡因子只能为0,—1,1。
18、一般树转换为二叉树
由于二叉树常常用二叉链表表示,为了使一般树也能用二叉链表表示,必须找出树与二叉树之间的关系。
为此,给定一棵树,可以找到唯一的一棵二叉树与之对应。
1)普通树转换为二叉树的方法:
对每个孩子进行自左至右的排序;
在兄弟之间加一条连线;
对每个结点,除了左孩子外,去除其与其余孩子之间的联系;
以根结点为轴心,将整个树顺时针转45度
19、遍历二叉树的应用
1)。
建立一棵二叉树
在遍历过程生成结点,建立二叉树
的存储结构,用链式存储结构
2)统计二叉树中叶子结点的个数
3)由遍历序列恢复二叉树
20、哈夫曼树及其应用(WPL
1、哈夫曼树(Huffman)
最优树:
是带权的路径长度最短的树,常用于信息检索;
路径长度:
从一个结点到另一结点之间经过的分支数目称为这对结点间的路径长度;
树的路径长度:
从树根到每一结点的路径长度之和,用PL表示;
结点带权的路径长度:
为从该结点到树根之间的路径长度与结点上权的乘积。
树的带权路径长度:
为树中叶子结点带权路径长度之和。
记作:
其中:
Wk为树中每个叶子结点的权;
Lk为每个叶子结点到根的路径长度。
WPL最小的二叉树就称作最优二叉树或哈夫曼树。
2、哈夫曼树的构造过程
例:
给定权值{7,5,2,4},构造哈夫曼树。
1)根据给的n个权值{w1,w2,········,wn}构造n棵二叉树的集合F={T1,T2,········,Tn},每棵二叉树仅有一个带权为wi的根结点;
2)在森林中选取两棵根结点权值最小的二叉树作为左右子树构造一棵新的二叉树,其根结点的权值为左右子树根结点权值之和。
且规定左子树根结点的权值小于右子树根结点的权值;
3)将新的二叉树加入到森林F中,去除原两棵权值最小的树;
4)重复2、3步骤,直至F中只剩一棵树为止。
4、哈夫曼编码
哈夫曼编码---利用哈夫曼树构造通讯中的电文编码(前缀码)。
例:
要传输的电文是{CAS;CAT;SAT;AT},要传输的字符集是:
D={C,A,S,T,;},字符出现的频率分别是W={2,4,2,3,3}
21、图的基本概念
图(Graph):
图G是由两个集合V(G)和E(G)组成的,记为G=(V,E),其中:
V(G)是顶点的非空有限集;E(G)是边的有限集合,边是顶点的无序对或有序对;
有向图:
有向图G是由两个集合V(G)和E(G)组成的,
其中:
V(G)是顶点的非空有限集,E(G)是有向边(也称弧)的有限集合,弧是顶点的有序对,记为〈v,w>,v,w是顶点,v为弧尾,w为弧头,(v,w)!
=(w,v)。
无向图:
无向图G是由两个集合V(G)和E(G)组成的,
其中:
V(G)是顶点的非空有限集,E(G)是边的有限集合,边是顶点的无序对,记为(v,w)或(w,v),并且(v,w)=(w,v)。
22、、图的相关术语
权:
与图的边或弧相关的数叫权(Weight),可以表示从一个顶点到另一个顶点的距离或耗费;带权的图叫网;
子图:
图G(V,E)和图G’(V’,E'),若V’⊆V,E’⊆E,则称G’为G的子图;
顶点的度:
无向图中,顶点的度为与每个顶点相连的边的数目;
有向图中,顶点的度分成入度与出度;入度:
以该顶点为头的弧的数目;出度:
以该顶点为尾的弧的数目;
路径:
路径是顶点的序列V={Vi0,Vi1,……Vin},满足(Vij-1,Vij)∈E或网络的路径长度定义为路径上权值之和;
简单路径:
除第一个和最后一个顶点外,序列中其余顶点各不相同的的路径为简单路径;第一个与最后一个顶点相同的简单路径为回路;
连通图:
在无向图中,若从Vi到Vj存在路径,则称Vi到Vj是连通的;若在顶点集合V中每一对不同的顶点Vi到Vj都连同,则称G为连通图;
强连通图:
对于有向图,若从顶点Vi到Vj和从Vj到Vi之间都有路径,则称这两个顶点是强连通的;对于有向图中任何一对顶点都是强连通,则此图为强连通图。
23、邻接表
邻接表是图的一种链式存储结构.在邻接表中,对图中的每个结点建立一个单链表。
第i个单链表中的结点表示依附于顶点Vi的边(有向图中指以Vi为尾的弧).
在边少的情况下,用邻接表比邻接矩阵节省存储空间。
24、1)深度优先遍历(DFS)
从图的某一顶点V0出发,访问此顶点;然后依次从V0的未被访问的邻接点出发,深度优先遍历图,直至图中所有和V0相通的顶点都被访问到;若此时图中尚有顶点未被访问,则另选图中一个未被访问的顶点作起点,重复上述过程,直至图中所有顶点都被访问为止。
2)广度优先遍历(BFS)
从图的某一顶点V0出发,访问此顶点后,依次访问V0的各个未曾访问过的邻接点;然后分别从这些邻接点出发,广度优先遍历图,直至图中所有已被访问的顶点的邻接点都被访问到;若此时图中尚有顶点未被访问,则另选图中一个未被访问的顶点作起点,重复上述过程,直至图中所有顶点都被访问为止。
25单源最短路径
一般情况,称出发点为源点;其余为终点;单源最短路径提出的问题:
从有向网的源点到其他各终点是否有路径?
最短路径是什么?
最短路径的长度是多少?
当然,从源点到终点存在三种情况:
1、无路径;2、只有一条路径,即为最短路径;3、有几条路径,其中一条为最短路径。
思想:
先找出从源点V0到各终点Vk的直达路径(V0,Vk),即通过一条弧到达的路径;从这些路径中找出一条最短的路径(V0,u),然后对其余各条路径进行适当调整:
若在图中存在弧(u,Vk),且(V0,u)+(u,Vk)的权小于(V0,Vk)的权,则以路径(V0,u,Vk)代替(V0,Vk);在调整后的各条路径中,在找出长度最短的路径,依次类推.
26、为确定记录在表中的位置,需和给定值进行比较的关键字的个数的数学期望值叫查找算法的平均查找长度
27、哈希函数/哈希表的基本概念
哈希函数:
在记录的关键字与记录的存储地址之间建立的一种对应关系,是可以根据关键字的值而直接计算出元素所在位置的函数,可表示H(KEY)。
哈希表:
哈希表是一种存储结构,是能用散列技术进行查找的表,也叫散列存储.通过哈希函数和解决冲突的办法把键值存放在哈希表中。
采用哈希技术主要目标是提高查找效率,要求缩短查表和填表的时间。
哈希查找:
又叫散列查找,利用哈希函数进行查找的过程。
冲突:
两个不同的关键字K1和K2计算出相同的存储位置的现象称为冲突,K1和K2互为同义词。
使用了监视哨,在查找过程中,不用每一步都去判断是否查找结束。
找到:
返回元素在线性表中的存储位置;未找到:
返回0。
对分查找概念:
基本思想:
对有序文件,进行查找,先找“中间记录”,进行比较,根据不同情况,逐步缩小范围,直到找到或确认找不到该记录为止。
分块查找:
是顺序查找的一种改进方法,就是把被查找的表分成若干块,每块中记录的存放顺序是无序的,但块与块之间必须按关键字有序。
即第一块中任一记录的关键字都小于第二块中任一记录的关键字,而第二块中任一记录的关键字都小于第三块中任一记录的关键字,依此类推。
二叉排序树的删除算法
voidDeleteBT(structTreeNode*t,*p,*f)
{intfag=0;structTreeNode*s;
if(p->Lchild==NILL)s=p—>Rchild;
elseif(p—〉Rchild==NILL)s=p-〉Lchild;
else{q=p;s=p—>Lchild;
while(s->Rchild!
=NILL)
{q=s;s=s->Rchild;}
if(q==p)q—>Lchild=s->Lchild;
elseq-〉Rchild=s—>Lchild;
p—>data=s—〉data;free(s);fag=1;}
if(fag==0){if(f==NILL)t=s;
elseif(f->Lchild==p)f—〉Lchild=s;
elsef->Rchild=s;
free(p);}}
四、二叉排序树查找
二叉排序树或者是一棵空树;或者是具有如下特性的二叉树:
(1)若它的左子树不空,则左子树上所有结点的值均小于根结点的值;
(2)若它的右子树不空,则右子树上所有结点的值均大于根结点的值;
(3)它的左、右子树也都分别是二叉排序树.
二叉排序树的生成
对于任意的一组数据元素序列{R1,R2,…,Rn},生成二叉排序树的过程如下:
1)令R1为二叉排序树的根结点;
2)若R2〈R1,令R2为R1的左子树的根结点;否则,R2为R1的右子树的根结点;
3)R2,…,Rn结点插入方法同上。
解决冲突的方法
1)开放定址法(线性探测再散列)
2)平方探测再散列(二次探测法)
3)随机探测再散列
4)链地址法
第五章
1、操作系统
操作系统就是能有效地管理计算机系统中的各种软、硬件资源,合理地组织计算机的工作流程,为用户创造良好工作环境的系统软件。
操作系统是与裸机最接近的软件层。
2、操作系统的功能:
1、处理机管理
2、存储管理
3、设备管理
4、文件管理
3、典型操作系统
•DOS
•Windows3.x,Windows95,Windows98,
Windows2000,Windowsxp
•UNIX:
IBM---—AIX、SUN-—-SunOP、HP—-——-HP-UX、
COMPAQ-—-digetalunix、
SCO————UNIXWARE\OpenServer
•LINUX:
免费的类UNIX的操作系统,公开源代码,内核小,硬件要求低,稳定可靠。
***4、进程与程序的区别
1)进程是动态概念,程序是静止概念;
2)进程的存在是暂时的(诞生(创建)、死亡(撤消)),程序的存在是永久的(一组指令的集合);
3)一个程序对应多个进程,而一个进程仅对应一个程序;
4)进程在结构上是由程序、数据集、进程控制块(PCB)三部分组成的。
5、操作系统的指令系统
特权指令:
只能由操作系统使用的指令;
非特权指令:
供一般用户使用的指令。
处理器状态
管态:
(主态、执行状态),处理器可包括执行特权指令在内的全部指令;
目态:
(算态、题目状态),处理器仅能执行用户作业;
处理器管理(处理器调度)可分为:
作业调度:
又称高级调度或宏观调度.主要功能是按某调度原则,选取某些作业进入内存,为之分配必要的资源,建立相应的进程,并当作业完成后做好善后;
进度调度:
又称低级调度或微观调度。
主要功能是按照某种调度原则,实现处理器在各进程间的转换.
6、作业的四种状态:
提交、后备、执行、完成。
7、进程的状态及其变化
就绪:
这类进程已经具备各种必须的资源,只等待获得CPU;
运行:
系统根据某种调度算法,将CPU分配给某一个就绪进程使之运行,该进程就处于运行态;
阻塞:
进程在运行中由要等待I/O设备或发生其他错误时,就转入阻塞状态,当阻塞原因消除后,重新回到就绪态。
8、原语是机器指令的延伸,由若干条机器指令构成,用以完成某一特定功能的程序段,又称为广义指令。
原语在执行期间是不可分割的。
9、进程控制原语
1)创建原语:
按进程调用者提供的参数,形成PCB、插入就绪队列、进入家族;
2)挂起(阻塞)原语:
中断该进程的运行,将某进程置于挂起状态;
3)唤醒原语:
将处于静止(挂起)状态的进程变为活动状态,等待CPU分配;
4)撤消原语:
撤消进程,释放所占用的所有资源,同时删除该进程的PCB。
10、同步与互斥的概念
同步:
一组合作进程在运行中,由于是异步的,进程之间要协调其推进的速度,以正确完成作业运行。
互斥:
对于某一临界资源,一组进程不能同时进入临界区去使用它。
一个进入,其他必须等待。
11、P-V操作的应用
1)实现进程同步;
2)实现进程互斥;
3)实现进程同步与互斥。
12、1、死锁:
每个进程所要求的资源都已被另一个进程占用,出现没有一个进程能继续运行,这种情况称“死锁"。
2、死锁产生的原因
A)资源不能共享(资源独占性);
B)资源的不可剥夺性;
C)资源采用动态分配原则:
允许一个进程不释放已占有的资源,就又去申请别的资源;
D)允许进程间非法交叉推进顺序的存在:
导致循环等待资源,无法前进。
13、银行家算法的思想:
(假定在同类资源的分配上实行这一算法).系统接到一个进程的资源请求后,就先假定承认这一申请,把资源分配给它。
然后系统用剩余的资源和每一个进程还需要的资源数相比,看能否找到这样的进程,系统把资源分配给它后,就能满足它对资源的最大需求,从而保证其运行完毕。
如果能就分配给它,系统在其运行完后回收其占用的全部资源,就会有更多的剩余资源数。
再重复这一过程,直到找不出这样的进程为止。
14、存储管理的主要功能
存储分配:
按照一定的算法把某一空闲的主存储空间分配给作业或进程。
地址映射:
将程序地址空间中使用的逻辑地址变换成主存中的地址的过程.(转换/定位)
存储保护:
保证用户程序(或进程映象)在各自的存储区域内操作,互不干扰。
存储扩充:
为大作业的运行提供空间.覆盖、交换、虚拟存储。
虚拟存储:
使用户程序的大小和结构不受主存容量和结构的限制,即使在用户程序比实际主存容量还要大的情况下,程序也能正确运行。
15地址映射
1地址映射
将程序地址空