《计算机二级基础知识.doc》由会员分享,可在线阅读,更多相关《计算机二级基础知识.doc(8页珍藏版)》请在金锄头文库上搜索。
1、数据结构与算法算法的基本概念1. 算法:是对问题处理方案的正确而完整的描述,是求解问题的方法,是指令的有效序列。2. 具有5个特性:(1) 有穷性(在有穷步后完成)算法程序的运行时间是有限的(2) 确定性(每一步都有确定的含义)(3) 可行性(4) 输入(一个算法有零个或多个输入)(5) 输出(一个算法有一个或多个输出)3. 算法的复杂度包括:时间复杂度和空间复杂度。 二者没有必然的联系。时间复杂度:执行算法所需要的计算工作量或基本运算次数。空间复杂度:算法所需要的空间的度量。数据结构的定义1. 数据结构包括数据的逻辑结构、数据的存储结构、数据的操作数据的逻辑结构:数据的外部结构,指各数据元素
2、之间的逻辑关系,反映人们对数据含义的解释。 包括:线性结构(线性表、栈、队列)和非线性结构(树和图)数据的存储结构:数据的物理结构,指数据的逻辑结构在计算机中的表示。一个逻辑结构可以有多种存储结构。 线性表:线性表中元素的个数n(n=0)定义为线性表的长度。顺序存储是线性表的一种最常用的存储方式。线性表的顺序存储结构和线性表的链式存储结构分别是随机存取的存储结构和顺序存取的存储结构。1.栈:是限定在表尾进行插入和删除操作的线性表。 具有记忆功能 只能顺序存储(错)允许插入和删除的一端叫栈顶。另一端叫栈底。后进先出的线性表2队列:是限定在一端插入而在另一端删除,插入端叫队尾,删除端叫对头。先进先
3、出的线性表3栈和队列的顺序存储结构循环队列属于线性表存储结构中顺序存储结构和链式存储结构的前者。 树1.定义:树的结点、度(结点的度)、叶子(终端结点)、数的度、深度、有序树和无序数2.二叉树:结点至多有两棵子树,并且二叉树的子树有之分,次序不能颠倒。性质:在二叉树的第i层上至多有2i-1个结点 深度为k的二叉树至多有2k-1个结点。 对任一个二叉树T,如果其叶子(终端结点数)为n,度为二的结点数为m,则n=m+1. 具有n个结点的完全二叉树的深度为k+1,其中k是2n的整数部分。2. 二叉树的遍历先序遍历(根左右)中序遍历(左根右)后序遍历(左右根)查找算法(1)顺序查找顺序查找的平均查找长
4、度为(n+1)2,最坏的情况下比较的次数为n(2) 二分查找最坏情况下次数为log2n限定于顺序存储的有序线性表排序算法(1)插入类排序直接插入排序折半插入排序希尔排序.(2)交换类排序冒泡排序 最坏情况下的比较次数n(n-1)2快速排序 最坏情况下的比较次数n(n-1)2(3)选择类排序例题精选:1. 设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为:3502. 已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列为:cedba3. 要求内存量最大的是:归并排序4. 在数据结构中,与所使用的计算机无关的是数据的是:逻辑结构5. 栈底至栈顶依次存放元素A
5、.B.C.D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是:DCBEA6. 已知数据表A 中每个元素距其最终位置不远,为节省时间,应采取的算法是:直接插入排序7. 用链式表示线性表的优点是:便于插入和删除操作。程序设计基础1.程序设计风格好的程序设计风格有利于提高程序的正确性、可读性、可维护性和可用性。要是程序有良好的风格概括起来可以分为4部分:源程序文档化、数据说明、语句结构、输入输出方法。用户所定义的标示符必须以字母或下划线开头。大、小写字母代表不同标识。2.结构化程序设计(1)结构化程序设计的基本特征:程序有3中基本结构组成:顺序结构、选择结构、循环结构整个程序采用模块化结构
6、。模块划分的原则:模块内具有高内聚度、模块间具有低耦合度。有限的使用转移语句,只限定在一个结构的内部跳转,不允许从一个结构跳到另一结构。程序设计时采用“至顶向下、逐步详细”的实施方法。(2)结构化程序设计的3种基本结构:顺序结构、选择结构、循环结构3种基本结构组成的算法只能完成符合结构化的任务(3)结构化程序设计的方法:逐步求精和模块化程序设计方法。结构化设计的总体思想是采用模块化结构,自上而下,逐步求精。3. 面向对象程序设计 基本概念对象:系统中运行的实体,是有特殊属性(数据)和方法的实体类:由属性和方法构成。一组具有相同的数据结构和相同的行为特征的对象的集合称为类在面对对象的方法中,类的
7、实例称为对象面向对象程序设计特征的是:继承性、多态性、封装性在面向对象的方法中,实现信息隐蔽是依靠对象的封装任何对象都必须有继承性(错)例题精选:1. 在面对对象的方法中,一个对象请求另一个对象为其服务的方式是通过发送:信息2. 面对对象的设计方法与传统的面向过程的方法有本质的区别,它的基本原理是:使用现实世界的概念抽象的思考问题从而自然地解决问题.3. 结构化方法中,软件功能分解属于软件开发阶段中的总体设计4. 结构化程序设计主要强调的是:程序的易读性5. 面向对象的设计程序主要考虑的是:提高软件的可重用性6. 类通过接口与外界发生关系.软件工程基础1.软件工程的基本概念(1)定义:软件是程
8、序、数据与相关文档的集合。软件包括系统软件和应用软件(2)软件工程的基本思想是软件开发中,应用工程化原则进行软件开发,并将这个思想贯穿在软件开发的整个过程中。软件工程的3要素:方法、工具和过程(3)软件的生命周期:从软件定义、开发、使用、维护到报废为止的整个过程。分三阶段:设计阶段、开发阶段、维护阶段包括:问题定义、可行性分析、需求分析、总体设计、详细设计、编码、测试和维护问题定义:确定开发的任务可行性分析:确定问题的可行性需求分析:对用户要求进行分析,明确目标系统要做什么总体设计:把软件功能转化为所需要的体系结构,即如何解决问题。详细设计:怎样具体的解决问题2.结构化分析方法(1)结构化分析
9、(SA)是面向数据流进行需求分析的方法SA方法的基本思想正是运用了分解和抽象两个基本手段,采用:自顶向下,逐步分解的分析思路。(2)数据流图基本图形符号:在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是:需求分析(3)数据字典在结构化分析的数据流图中,利用数据字典对其中的图形元素进行确切解释.3.软件设计(1)概要设计(总体设计)包括两个主要阶段:系统设计(确定具体的实现方案)和结构设计(确定每个系统的模块组成及模块间的关系)模块之间联系越紧密,其耦合性就越强,模块的独立性就越差;一个模块内个要素联系越紧密,则它的内聚性就越高。模块划分原则:高内聚低耦合(2)详细设计结构化程
10、序设计的要点:采用自顶向下、逐步求精的程序设计方法,一个程序只有一个入口和一个出口。详细设计的常用工具:程序流程图、盒图、PAD和PDL(3)软件测试目的软件测试的目的是尽可能多的发现程序中的错误。软件测试方法:静态测试和动态测试(黑盒测试法和白盒测试法)黑盒测试包括:等价分析法、边值分析法、因果图法和错误推测法白盒测试法测试的原则之一就是保证所测模块中的每一个独立的路径至少执行一次。(4)程序调试分为静态调试和动态调试调试的目的:改正错误经调试后还必须进行再测试(5)软件维护软件维护就是在软件已经交付使用以后,为改正错误或满足新的需求而修改软件的过程。例题精选:1 分析的结果是产生需求规格说
11、明书。2 软件详细设计的主要任务是确定每一个模块的算法和使用的数据结构。3 进行单元测试时,常用的方法时采用白盒测试,辅以黑盒测试。4 软件工程的出现是由于软件危机的出现,人们提出了软件工程学的原理设计软件。5 数据字典是各类数据描述的集合,通常包括4个部分:数据项、数据流、数据存储和数据加工。数据库设计基础1. 数据库(1) 数据库设计的根本目的是要解决数据共享的问题。(2) 数据库的特点:数据按一定的数据模型组织和存储。 冗余度较小 数据的独立性较高。数据独立性:数据的组织结构和存储方法与应用程序互不依赖、彼此独立。易扩展可为多种用户共享2. 数据库管理系统(DBMS)位于用户与操作系统之
12、间的完成数据管理的系统软件。3. 数据库系统由数据库、数据库管理系统、应用系统、数据库管理员和用户组成。最核心的部分是数据库管理系统。4. 数据模型(1) 实体联系模型及E-R图3部分:实体、联系和属性实体集间的联系:一对一联系、一对多联系和多对多联系(2) 层次、网状、关系模型层次模型:有且只有一个结点无双亲,其他结点只有一个双亲。用树形结构来表示各实体与实体之间的联系。在关系数据库中,把数据表示成二维表,每个二维表称为关系。一个关系对应一张二维表。 关系的属性名称为关系模式。5. 关系运算(1)并(2)差(3)交(4)笛卡尔积()6.专门关系运算:选择、连接和投影(1)从关系中找到满足条件的所有元组称为选择(2)从关系中挑选若干属性组成新的关系称为投影7.数据库设计步骤:(1)需求分析阶段(2)概念设计阶段(3)逻辑结构设计阶段 将E-R图转化数据模型(4)数据库物理设计阶段 数据库内模式,给出数据库物理存储结构和物理存取方法。例题精选:1. 数据库管理系统的主要功能是:定义数据库2. 关系表中每一横行称为一个元组,每一列称为属性。3. 设计数据库的存储结构属于物理设计.