-
Data Structure
-
1.什么是数据结构
-
1.1基本概念和术语
-
基本概念
-
数据
- 任何可以被计算机处理的信息
-
数据元素
- 数据结构讨论的基本单位
-
数据项
- 数据结构中讨论的最小单位
-
数据对象
-
性质相同的数据元素的集合,数据的一个子集
- 整数数据对象
- 字母字符数据对象
-
性质相同的数据元素的集合,数据的一个子集
-
数据结构(狭义)
- 带结构的数据元素的集合
-
是相互之间存在一种或多种特定关系的数据元素的集合
- 关系不同结构不同
-
数据的逻辑结构分类(数据关系)
- 线性结构
- 树形结构
- 图结构或网状结构
- 集合结构
- 是相互之间存在着某种逻辑关系的数据元素的集合
-
数据结构形式定义
- 数据结构是一个二元组
- 数据,结构(D,S)
-
数据的存储结构
- 逻辑结构在计算机中的表示
-
数据元素的映像
- 用二进制位()的位串表示数据元素
-
关系的映像
-
顺序映像和非顺序映像
-
顺序存储
- 以相对的存储位置表示后继关系,整个存储结构中只含数据元素本身的信息
-
链式存储
- (指针结构)需要用一个和X在一起的附加信息指示y的存储位置
-
顺序存储
-
顺序映像和非顺序映像
-
数据
-
数据类型(Data Type)
- Like int float string
- 规定了其取值范围和运算内容
- 不同类型的变量的取值和所能进行的操作是不同的
- 是一个值的集合和定义在此集合上的一组操作的总称
-
抽象数据类型(Abstract Data Type)
-
概念
- 一个数学模型以及定义在此数学模型上的一组操作
-
包含内容
- 数据对象
- 数据关系
-
操作
- 算法设计
-
重要特征
- 数据抽象
- 数据封装
-
概念
-
基本概念
-
1.2抽象数据类型的表示与实现
-
概念
- 用已有的数据类型来表示实现新的数据类型和结构
-
概念
-
1.3算法和算法分析
-
算法
- 概念
-
特征
- 有穷性
- 确定性
- 可行性
-
有输入
- 可以无
-
有输出
- 必须有
-
算法设计的要求
-
目标
-
正确性
- 不含语法错误
- 对机组输入数据得到满足要求的结果
-
对special典型苛刻的数据能得到满足要求的结果
- 以这个为衡量算法是否标准的依据
- 对于一切合法的输入数据都能得出满足要求的结果
-
可读性
- 易读
-
健壮性
- 输入非法时恰当地表示
- 处理出错方法不是中断执行而是返回一个表示错误或错误性质的值,以便在更高的抽象层次上进行处理
-
高效率与低存储量的需求
- 与问题的规模有关
- 需求时间和空间越少越好
-
正确性
-
目标
-
算法效率的度量
-
度量方法
-
事后统计法
-
缺点
- 必须执行程序
- 其他因素掩盖算法本质
-
缺点
-
事前分析估算法
-
消耗时间取决因素
- 算法选用的策略
- 问题的规模
- 编写程序的语言
- 编译程序产生的机器代码的质量
- 计算机执行指令的时间
-
抛开硬件软件原因
- 只依赖于问题的规模
- 换句话说是问题规模的函数
- 算法中基本操作重复执行的次数是问题规模n的摸个函数f(n)
- 算法的时间度量记作 T ( n ) = O ( f ( n ) )
- 即时间复杂度
-
消耗时间取决因素
-
事后统计法
-
算法的时间复杂度
- 算法 = 控制结构 + 原操作
-
(固有数据来行的操作)
- 算法的执行时间与原操作执行次数之和成正比
-
算法效率的度量
- O(n2)
-
算法的存储空间需求
-
S(n) = O ( g ( n ) )
- 空间需求随着问题规模n的增大而同g(n)的增长率相同
-
算法的存储量
- 输入数据所占空间
- 程序本身所占空间
- 辅助变量所占空间
-
几种占用空间情况
- 若输入数据所占空间只取决于问题本身,和算法无关,则只需要分析除输入和程序之外的辅助变量所占额外空间
- 若所需额外空间相对于输入数据量来说是常数,则称此算法为原地工作
- 若所需存储量依赖于特定的输入,则通常按最坏情况考虑
-
S(n) = O ( g ( n ) )
-
度量方法
-
算法
-
1.1基本概念和术语
-
1.什么是数据结构
相关文章: