【计算二级认证】基础知识要点

算法基本特征
算法:是指解题方案的准确而完整的描述(算法不等于程序)
程序的设计不可能优于算法的设计
可行性、确定性、有穷性、足够的情报

算法的基本要素
对数据对象的运算和操作:算术运算、逻辑运算、关系运算、数据传输
算法的控制结构:算法中各操作之间的执行顺序;描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等;一个算法一般可以用顺序、选择(分支)、循环(重复)三种基本结构组合而成

算法的时间复杂度:是指执行算法所需要的计算工作量,可以用算法所执行的基本运算次数度量
算法的空间复杂度:是指执行算法所需要的内存空间。
算法的时间复杂度和算法的空间复杂度相互独立

数据结构
数据结构是指相互有关联的数据元素的集合
数据:需要处理的数据元素的集合,一般来说,这些数据元素,具有某个共同的特征
数据元素是数据的基本单位,即数据集合中的个体
有时一个数据元素可有若干数据项组成。数据项是数据的最小单位
结构:是集合中各个数据元素之间存在的某种关系(或联系)

数据结构的分类
1、 逻辑结构:线性结构(线性表、栈、队列);非线性结构(树、图)
2、 存储结构:顺序存储;链式存储
3、 运算:插入、删除、查找、排序

数据结构的逻辑结构
指反映数据元素之间的逻辑关系(即前后件关系)的数据结构
分为线性结构和非线性结构

线性结构(线性表)
有且只有一个根节点,它无前件
每一个节点最多有一个前件,也最多有一个后件

非线性结构
不满足以上两个条件的数据结构就称为非线性结构
非线性结构主要是指树形结构和网状结构

数据结构的存储结构
又称为数据的物理结构,是数据的逻辑结构在计算机存储空间中的存放方式
顺序存储结构:主要用于线性的数据结构
链式存储结构:每一个结点至少包含一个指针域,用指针的指向来体现数据元素之间在逻辑上的联系
一种逻辑结构可以有多种存储结构
不同的UC拿出结构其数据处理的效率不同

=====================================================

线性表
线性表是n(n>=0)个数据元素构成的有限序列,表中除第一个元素外的每一个元素,有且只有一个前件,除最后一个元素外,有且只有一个后件。
例如:英文字母表、地理学中的四向、表格

线性表的顺序存储结构
通常,线性表可以采用顺序存储和链式存储,但一般使用顺序存储结构
线性表的顺序存储又叫做顺序表(顺序分配)
特点:线性表中所有元素所占的存储空间是连续的;线性表中数据元素在存储空间中是按逻辑顺序依次存放的;可以随机访问数据元素;做插入、删除时需移动大量元素,因此线性表不便于插入和删除元素。 


栈是限定在一端进行插入和删除的线性表
特点:
1、 栈是只能在栈顶进行插入和删除;
2、 栈的修改原则是“先进后出”或“后进先出”;
3、 栈底指针boottom,栈顶指针top,入栈,栈满,出栈—栈第指针不变,栈中元素随栈顶指针的变化而动态变化
4、 栈具有记忆功能
5、 栈支持子程序调用

队列
队列是指允许在一端进行插入,而在另一端进行删除的线性表。原则是:先进先出(或后进后出)。
队头指针front 队尾指针rear 入队 出队
特点:1、队列只允许在队尾进行插入,而在队头进行删除
2、队列的修改原则是“先进先出”或“后进后出”
3、队列中元素随队头指针和队尾指针的变化而动态变化

循环队列
循环队列就是讲队列存储空间的最后一个位置绕道第一个位置,形成逻辑上的环状空间
1、 rear>front s=rear-front
2、 rear>front s=容量+rear-front
3、 rear=front s=1或者s=0

=================================================================

二叉树的遍历
(按照一定的顺序访问二叉树中的结点,每个结点只被访问一次)
前序遍历:访问根结点、前序遍历左子树、前序遍历右子树(根左右)
中序遍历:中序遍历左子树、访问根结点、中序遍历右子树(左根右)
后序遍历:后序遍历左子树、后序遍历右子树、访问根结点(左右根)

顺序查找
顺序查找:对于长度为n的线性表,平均要进行n/2次比较,在最坏的情况下进行n次比较。
顺序查找适用于无序表或链式线性表(不管无序还是有序)(适用于所有的线性表)

二分查找
二分查找:适用于顺序存储的有序表,对长度为n的线性表,在最坏的情况下进行log_2⁡n次比较。
注意:即使是有序线性表,如果采用链式存储结构,也只能用顺序查找。

排序
排序 平均时间 最坏情况
交换类 冒泡排序 n(n-1)/2 n(n-1)/2
快速排序 n(n-1)/2 n(n-1)/2
插入类 插入排序 n(n-1)/2 n(n-1)/2
希尔排序 nlog_2⁡n n^1.5
选择类 选择排序 n(n-1)/2 n(n-1)/2
堆排序 nlog_2⁡n nlog_2⁡n

快速排序
基本思想:在要排序的序列中找一个数作为基准数(通常为第一个数);通过交换将这个序列中所有比基准数大的数放在右边,比基准数小的数放在左边;以基准数为分割线分为两个子表,对两个子表重复上述步骤。


程序设计方法与风格
良好的程序设计风格:清晰第一,效率第二
如何形成良好的程序设计风格:1、源程序内部文档化;2、数据说明;3、语句的结构;4、输入和输出

源程序内部文档化:1、选择标识符的名字
2、注释(序言性和功能性注释)序言性注释一般位于模块的首部,用于说明模块的相关信息(标题、功能的说明、主要的算法、模块接口、开发历史、开发者、复审者和复审日期)。功能性注释位于源程序模块内部。
3、程序的视觉组织

结构化程序设计原则
自顶向下:先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标
逐步求精:对复杂问题,先设计一个目标作为过渡,然后逐步细化
模块化:把程序要解决的总目标分解为一个一个的模块
限用goto:限制使用goto语句,程序的质量与goto语句数量成反比

结构化程序的基本结构
结构化程序设计常采用顺序、选择(分支)和循环三种基本结构

程序设计语言的基本成分是数据成分、运算成分、控制成分和传输成分

=============================================================

软件工程
软件工程:应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。
其目的是提高软件生产率、提高软件质量、降低软件成本。
其核心思想是把软件当做一个工程产品来处理。

软件工程三要素
方法是完成软件工程项目的技术手段
工具支持软件的开发、管理和文档生成
过程支持软件发开的各环节的控制和管理

软件生命周期
将软件产品产品能够提出、实现、使用维护到停止使用退役的过程称为软件生命周期。
分为软件定义、软件开发及软件运行维护3个时期。维护是持续时间最长,花费代价最大的一个时期。
软件工程学的一个目的就是提高软件的可维护性,降低维护代价。

3个时期共有8个阶段
软件定义:问题定义可行性研究、需求分析
软件开发:概要设计、详细设计、实现、测试
软件运行维护:使用、维护

需求分析
需求分析:确定系统的逻辑模型。参加人员有用户、项目负责人和系统分析员。
其工作:需求获取、需求分析、编写需求规格说明书、需求评审
产生文档:为需求规格说明书
需求规格说明书的作用:
1、 便于用户、开发人员进行理解交流
2、 反映用户问题的结构,可以作为软件开发工作的继承和依据
3、 作为确认测试和验收的依据

需求规格说明书(SRS)
需求分析阶段产生的主要文档是“软件需求规格说明书”,其特点是:
1、 正确性:体现待开发系统的真是要求
2、 无歧义性:对每个需求只有一种解释
3、 完整性:包括全部有意义的需求
4、 可验证性:每个需求都是可验证的
5、 一致性:各个需求的描述不矛盾
6、 可理解性:需求说明书必须简明易懂
7、 可修改性:结构风格在改变时,是易于实现的
8、 可追踪性:每个需求的来源和流向是清晰的

================================================================================

线性链表
线性表可以采用顺序存储和链式存储
线性表的顺序存储叫做顺序表,线性表的链式存储结构叫做线性链表

线性链表的特点
各数据结点的存储空间可以不连续
各数据元素的存储顺序和逻辑循序可以不一致
线性表的链式存储所占存储空间大于顺序存储结构
查找结点时链式储存要比顺序存储慢
链式存储插入删除元素比顺序存储灵活

线性链表的操作
在线性链表中进行插入与删除,不需要移动链表中的元素

线性表
线性表顺序存储结构
线性表链式存储结构:双向链表、循环链表


树是n(n>0)个元素的有限集合。他有且仅有一个称为根的元素;其余元素是互不相交的子树。
常用术语:
父结点、子结点
根结点、叶子结点
结点的度、树的度(所有结点中最大的数称为树的度)
树的深度
子树(以某个结点的一个子结点为根构成的数称为该结点的一颗子树)

二叉树
二叉树是一个有限的结点集合,该集合或者为空,或者有一个根结点及其两颗互不相交的左右二叉子树所组成
二叉树的特点:非空二叉树只有一个根结点;每一个结点最多有两颗子树,且分别称为该结点的左子树与右子树

二叉树有五种基本形态:空二叉树,只有一个结点的二叉树,只有左子树的二叉树,只有右子树的二叉树,左右子树双全的二叉树 

特殊二叉树
满二叉树:除最后一层外,每一层上的结点数均达到最大值
完全二叉树:除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺右边的若干结点
满二叉树是完全二叉树,但是完全二叉树不一定是满二叉树

二叉树
非空二叉树只有一个根结点,每个结点最多有两颗子树,分别称为左子树和右子树
在二叉树的第K层上,最多有2^(K-1)个结点
深度为m的二叉树最多有2^m-1个结点
度为0的结点(叶子结点)总比度为2的结点多一个
有n个结点的二叉树深度至少为【log_2⁡n 】+1

====================================================================

结构化分析方法
需求分析方法有:结构化需求分析方法和面向对象的需求方法
结构化分析方法:使用数据流图(DFD)、数据字典(DD)、判定表和判定树等工具,来建立系统的逻辑模型。

数据流图(DFD)
数据流图的图形元素
〇 加工:输入数据经加工变换产生输出
→ 数据流:沿箭头方向传递数据的通道
= 存储文件(数据源):存放各种数据的文件
□ 源(潭):系统和环境的接口

数据字典是结构化分析的核心

软件设计的划分
从工程管理角度划分:概要设计、详细设计
按技术观点划分:结构设计、数据设计、接口设计、过程设计

软件设计基本原理
抽象:在软件设计中,可以定出多个抽象级别,抽象层次从概要设计到详细设计逐步降低。
模块化:把一个待开发的软件分解成若干小的简单的部分,自顶向下逐层把软件换分成若干模块。
信息隐蔽:一个模块内的信息,对于不需要这些信息的其他模块来说不能访问。
模块独立性:每个模块只完成独立的子功能,并且与其他模块的联系少且接口简单。模块的独立程度是评价设计好坏的重要度量标准。(高内聚低耦合)

软件模块独立性
内聚性:指一个模块内部各个元素件彼此结合的紧密程度(高内聚)
耦合性:指模块间相互连接的紧密程度(低耦合)—非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合

概要设计
概要设计的任务:
1、 设计软件系统结构
2、 数据结构及数据库设计
3、 编写概要设计文档
4、 概要设计文档评审
概要设计的工具是程序结构图(SC)

程序结构图(SC)
程序结构图的基本图符:一般模块、数据信息、控制信息
程序结构图的基本形式:基本、顺序、重复、选择

详细设计
详细设计的任务:确立每个模块的实现算法和局部数据结构,用适当方法标识算法和数据结构的细节
详细设计的常用工具:
图形工具:程序流程图、N-S图、PAD、HIPO
表格工具:判定表
语言工具:PDL(伪码)

程序流程图
程序流程图的基本图符:
控制流→↓
加工步骤□
逻辑条件

软件测试
软件测试的目的是发现程序中的错误
软件测试的准则:
1、 所有测试都应追溯到用户需求
2、 在测试之前制定测试计划,并严格执行
3、 充分注意测试中的群集现象
4、 避免由程序的编写者测试自己的程序
5、 不可能进行穷举测试
6、 妥善保存测试分析报告,为维护提供方便

===============================================================================

面向对象的程序设计
对象:在现实世界中,每个实体都是对象,例如,大学生、汽车、电视机、空调等都是现实世界中的对象
属性:用于描述对象的状态
方法:用于描述对象的行为
类:类是一组具有相同属性和相同操作的对象的集合
基于同一类产生的对象可以分别设置各自的属性

对象的基本特点
标识唯一性:对象可由内在本质来区分。而不是通过描述来区分。
分类性:可以将具有相同属性和操作的对象抽象成类。
多态性:同一操作可以是不同对象的行为
封装性:从外面看不到对象的内部,只能看到对象的外部特征
模块独立性好:对象是面向对象的软件的基本模块,内聚性强

继承
继承:使用已有的类建立新类的定义技术。能直接获得已有的性质,而不必重复定义他们。

消息
消息:是一个实例与另一个实例之间传递的信息。对象间的通信靠消息传递。
消息的组成包括:1、接收消息的对象的名称2、消息标识符,也成消息名3、零个或多个参数

多态性
多态性:是指同样的消息被不同的对象接受时可导致完全不同的行动的现象

软件
软件(程序、数据、文档)

软件的分类
系统软件:操作系统、编译程序、汇编程序、网络软件、数据库管理系统
应用软件:事务处理软件、工程与科学计算软件、实时处理软件、人工智能软件
支撑软件(工具软件):需求分析工具、编译工具软件、测试工具软件、维护工具软件

软件危机
软件危机:需求增长、开发难控、质量难保、难以维护、提高成本、生产率低

=========================================================

数据库系统(DBS)
由以下部分组成:数据库(数据)——集成,共享;
数据库管理系统DBMS(软件)——定义,构建,操纵,检查,控制,服务。DDL,DML,DCL;数据库管理员DBA(人员)——设计,维护,改善性能,提高效率;
软件平台——操作系统,开发工具,接口软件;
硬件平台——计算机,网络

数据库应用系统(DBAS)
数据库应用系统包括:数据库系统、应用软件以及应用界面
数据库应用系统>数据库系统>数据库管理系统>操作系统>硬件

数据管理三个阶段
人工管理、文件系统、数据库系统
数据库技术的根本目标是:解决数据共享问题

数据库系统特点:
集成性,高共享低冗余,独立性,统一管理控制

三级模式和两级映射
概念模式(概念数据库):是全局数据逻辑结构的描述,是全体用户的公共数据视图
外模式(用户数据库):又称子模式或用户模式,是用户的数据视图
内模式(物理数据库):给出数据库物理存储结构与存取方法。
外模式—概念模式映射
概念模式—内模式映射
两级映射保证了数据库中数据具有较高的逻辑独立性和物理独立性。

第二节数据模型
数据模型
数据模型的三要素:数据结构、数据操作和数据约束
数据模型按不同的应用层次分为:
1、 概念数据模型(概念模型):E-R模型
2、 逻辑数据模型(数据模型):层次模型、网状模型、关系模型、面向对象模型
3、 物理数据模型(物理模型)

E-R模型(实体联系模型)
实体(矩形)、属性(椭圆形)、联系(菱形)、联系关系

数据模型
层次模型:树
网状模型:无向图
关系模型:二维表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值