计算机公共基础知识

    科技2023-12-25  108

    计算机公共基础知识


    文章目录

    计算机公共基础知识算法(algorithm)数据的逻辑结构:数据的存储结构(物理结构):数据的运算。线性结构(线性表):栈:在一端进行插入和删除的线性表队列(queue)一端插入在另一端删除的线性表树:顺序查找二分法查找排序技术:程序设计风格:结构化程序设计的4个原则面向对象基本特征:封装、继承、多态


    算法(algorithm)

    解题方案准确而完整的描述、算法不等于程序也不是计算方法,通常来说程序编制 不可能优于算法设计 算法基本特征: 可行性(受制于计算工具)、确定性(步骤有明确定义)、有穷性(必须能在执行有限 步骤后终止)、有足够情报 时间复杂度: 算法的时间复杂的指的是执行算法所需要的计算工作量 算法所执行的基本次数是问题规模的函数。 空间复杂度: 算法在执行过程中,所需要的储存空间

    数据结构的目的是提高数据处理的效率(速度/空间)

    数据的逻辑结构:

    1.线性结构:(线性表、栈、队列(循环队列)) 2.非线性:(树、图形)

    数据的存储结构(物理结构):

    1.顺序存储 2.链式存储

    数据的运算。

    B=(D,R) D={1,2,3,4} R={(1,2),(2,3)(3,4)}

    前件指向后件 没有前件为根结点 没有后件为终端(叶子)节点

    线性结构(线性表):

    有且只有一个根结点; 有且只有一个终端(叶子)结点 除根、终端结点外,其他所有结点有且只有一个前、后件

    栈:在一端进行插入和删除的线性表

    先进后出(后进先出) 栈底指针bottom(始终在1的位置) 栈顶指针 top(初始指向0会一直跟随指向最顶端元素)

    队列(queue)一端插入在另一端删除的线性表

    先进先出(FIFO)(后进后出(LILO)) 尾指针rear(插入) 总是指向最后被插入的元素 排头指针 front(删除)指向第一个元素的前一个位置 循环队列初始状态为空或满,front=rear 队满上溢 队空下溢 数据域存储元素的值,指针域存储地址

    树:

    一个结点拥有的后件个数为度 树的度为结点个数最多的树的度 深度为树的最大层次 非空二叉树只有一个根结点 二叉树性质: 二叉树第i层最多有有2的i-1次幂个结点 深度为h的二叉树 最多 有2的h幂-1个结点 任意二叉树度为0的结点比度为2的结点多一个 满二叉树:除最后一层每一层的结点都有俩子结点每一次的结点数都为最大值 完全二叉树:最后一层外,每一层均到最大值;在最后一层上只缺少右边若干结点。 二叉树通常采用链式储存结构 前序遍历 根-左-右 中:左-根-右 后:左-右-根 宝宝定理: 对于完全二叉树而言 它的结点个数为偶数n时,该二叉树中: 叶子结点的个数=非叶子结点的个数=n/2 如果他的结点个数为奇数m,该二叉树中: 叶子结点的个数=非叶子结点的个数+1=(m+1)/2;

    顺序查找

    平均需要表中一般以上元素比较,最坏要比较n次(找不到) 线性表为无序表,只能用顺序查找 线性表为有序表,如果采用链式存储也只能用顺序查找

    二分法查找

    前提:在顺序存储结构的有序表 特点:比顺序查找方法效率高,最坏情况下比较 log2n次

    排序技术:

    类别 排序方法 (最坏)时间复杂度 交换类 冒泡排序: O(n^2) 快速排序: O(n^2)

    插入类 简单插入排序: O(n^2) 希尔排序 O(nlog2n)

    选择类 简单选择排序 O(n^2) 堆排序 O(nlog2n)

    程序设计风格:

    1.清晰第一、效率第二 2.影响因素:1、源程序文档化 2、数据说明方法 3、语句的结构(遵循以下原则) 4、输入和输出

    结构化程序设计的4个原则

    自顶向下 先考虑整体,后考虑细节 逐步求精 对复杂问题,先设计一些子目标过度。 模块化 把程序的总目标分解为一个一个的模块 限制使用goto语句

    结构化程序的基本结构和特点 结构化程序设计中常采用:顺序结构、选择结构、重复(循环)结构。

    属性是对象的静态特征、方法是对象的行为

    对象的基本特点 标识唯一化、分类性、多态性、封装性、模块独立性好

    消息由接收消息的对象名称、消息标识符、零个或多个参数

    面向对象基本特征:封装、继承、多态

    应用软件:为了解决特定区域的应用而开发的软件。 系统软件:计算机管理自身资源,提高使用效率并为计算机用户提供各种服务的软件 支撑软件 协助用户开发软件的工具性软件。

    软件危机:指计算机软件开发和维护过程中遇到的一系列严重问题 软件危机表现在成本、质量、生产率问题

    软件工程:软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、 文档、实践标准的工序。 软件工程三要素: 方法:完成软件工程项目的技术手段 工具:支持软件的开发、管理、文档生成 过程:软件开发的各个环节的控制、管理。 软件工程强调在软件开发过程中需要应用工程化的原则 软件生命周期:将软件产品从提出、实现、使用维护到停止使用退役的过程为软件声明周期 分为 软件定义、软件开发及软件运行维护3时期

    需求分析: 结构化分析方法、面向对象的分析方法

    需求分析的主要工作: 需求获取、需求分析、编写需求规格说明书、需求评审

    结构化分析的常用工具 数据字典(DD)(核心) 数据字典是对DFD中出现的被命名的图形元素的确切解释。 判定树、判定表 数据流图(DFD): 球形 加工 箭头 数据流 平行线 储存文件 矩形 潭 源 软件需求规格说明书是需求分析阶段的最后成果

    结构化设计方法 软件设计是把软件需求转化为软件表示的过程。

    从工程管理角度来看:概要设计和详细设计

    软件设计的基本原理 抽象、模块化、信息隐蔽、模块独立性

    高内聚(独立性)、低耦合(关联性) 优秀的软件尽量做到

    概要设计 数据结构和数据库设计

    软件结构图 矩形 一般模块 空箭头表示 数据信息 实心箭头 控制信息

    结构图的有关术语:深度层数 宽度整体左右跨度 扇出 扇入 原子模块叶子结点

    数据流图类型:变换型、事务型

    详细设计的常用工具: 图形工具: 程序流程图、N-S、PAD和HIPO 表格工具:判定表; 语言工具:PDL(伪码)

    程序流程图 箭头 控制流 矩形 加工步骤 菱形 逻辑条件

    软件测试 查找错误 不管修改、维护 严格执行测试计划,排除测试的随意性 避免检查自己的程序 穷举测试不可能

    白盒测试(结构测试或逻辑驱动测试) 主要方法 逻辑覆盖、基本路径测试

    黑盒测试(功能测试或数据驱动测试) 主要用于确认测试

    软件测试的实施: 单元测试、集成测试、系统测试、验收测试

    单元测试:对模块进行正确性检验的测试 动态 白盒为主

    集成测试:概要设计说明书

    确认测试:黑盒测试法

    系统测试:真实环境检验

    软件调试:Debug 诊断和改正错误 1.强行排错2.回溯3.原因排除法

    数据库的根本目的是解决数据共享问题 数据库管理系统(系统软件) 对数据库中的数据组织、操纵、维护、控制、保护 数据库管理系统是数据库系统的核心 数据定义语言DDL:数据模式的定义与数据的物理存取构建 数据操作语言DML:增删改查 数据控制语言DCl:故障恢复等

    数据管理三个发展阶段:人工-文件-数据库

    数据的集成性、高共享低冗余、独立、管理与控制 数据的独立性:数据与程序间互不依赖数据的逻辑、存储、存取不影响应用程序 物理独立性、逻辑独立性

    数据库三级模式: 概念-内模式、外-概念 都是映射 内:数据库如何存储 外模式:用户 概念连接内、外

    一个数据库只有一个概念模式 外模式:用户的数据视图 一个数据库可以有多个外模式 内模式: 一个数据库只有一个 数据的逻辑、物理结构不一定一致

    概念模型:基础、E-R模型(实体联系模型) 逻辑模型:层次、网状、关系 模型

    E-R:实体 矩形 属性 椭圆 联系 菱形 联结关系 横线

    关系的性质(二维表) 元组个数有限、元祖唯一、元组次序无关性、元组分量的原子性、属性名唯一

    数据完整性约束 主键中属性值不能为空、不能重复

    数据库设计是数据库应用的核心 面向过程 面向数据的设计方法已经成为主流方法

    数据库设计的四个阶段: 需求分析、概念设计(E-R图)、逻辑设计(E-R转换为关系数据模型)、物理设计

    Processed: 0.010, SQL: 8