计算机公共基础知识

计算机公共基础知识



算法(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转换为关系数据模型)、物理设计

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值