数据结构
P3 P6
数据data:记录信息的符号
数据元素data element:一条记录的所有数据;数据元素是数据的基本单位。 数据项:字段;不可分割 数据对象:具有相同性质的数据元素的集合
数据类型:一个值的集合以及定义在此集合上的一组操作的总称。 原子类型:不可再分的数据类型;int char 结构类型:由若干成分按某种结构组成的,其值可再分的数据类型; Book
抽象数据类型ADT(abstract data type):抽象数据组织与之相关的操作;数学模型;三元组(数据对象、数据关系、数据操作集)
数据结构(data structure):主要指数据的类型和数据的组织形式。 相互之间存在一种或多种特定关系的数据元素的集合,包括三方面内容:逻辑结构、存储结构、数据运算
数据结构三要素:逻辑结构(线性、非线性)、存储结构、运算(定义是逻辑结构、实现针对是存储结构;增删改查,排序)
数据的逻辑结构:元素间的逻辑关系;与数据存储无关;线性结构(链表、队列、栈、串、数组、广义表)、非线性结构(集合、树、图)
线性结构:描述一对一的关系; 树型结构:描述一对多关系; 图/网状结构:描述多对多关系; 没有关系:集合元素描述。
数据的存储结构:指元素在计算机中的表示,也称物理结构。 顺序存储、链接存储/指针、索引存储/更新目录、散列存储也称hash存储,根据结点的关键字通过散列函数直接计算出结点的存储地址

算法(algorithm):解决特定问题的步骤。 程序=算法+数据结构
算法的五个特性:有穷性、确定性、可行性、输入、输出; 好算法要考虑的:正确性(相同的输入可得相同的输出)、可读性、健壮性、效率/时间短、低存储/空间复杂度;
算法分析(analysis of algorithms)
算法设计(algorithm design)
频度:语句在算法中被重复执行的次数;频度之和记作T(n)
算法的评价:时间复杂度、空间复杂度
时间复杂度:所有语句执行的次数和T(n),不同的输入,有不同的时间复杂度;T(n)主要分析数量级;通常采用算法中基本运算的频度f(n)来分析算法的时间复杂度:T(n)=O(f(n));
O( )表达式:f(n),g(n)是定义在正整数集上的正函数,若给定任意正常数c和自然数n0,使得当n>n0时,有f(n)<=cg(n),称g(n)为f(n)的一个上界,记作f(n)=O(g(n)),也称f(n)的阶不高于g(n)。
运算法则:O(f)+O(g)=O(max(f,g)) O(f)+O(g)=O(f+g) O(f)O(g)=O(fg)
Ω与O相反
f(n),g(n)是定义在正整数集上的正函数,若任意正常数c和自然数n0,使得当n>n0时,有f(n)>=cg(n),则称g(n)为f(n)的一个下届,记作f(n)=Ω(g(n)),也称f(n)的阶不低于g(n)。
θ确界:f(n)=θ(g(n)) <=>f(n)=O(g(n)) 且 f(n)=Ω(g(n)) 一般而言O即θ
空间复杂度:算法所消耗的存储空间g(n);空间复杂度是问题规模n的函数,记作S(n);S(n)=O(g(n))
算法的原地工作指算法所需辅助空间是常量,即S(n)=O(1);
常见的问题模型:
结构分析—— 线性方程组
人口预报—— 微分方程
优化问题—— 线性规划、非线性规划
震动问题—— 矩阵分析;特征值、特征向量
信息管理—— 二维数据表
下棋 —— 树型结构
交通管理—— 图型结构
子任务(subtask)
实现(implement)
数学分析(mathematics analysis)
连通性问题(connectivity problem)
高级推理(high-level reasoning)
图论(graph theory)
对集合(set of pair)
图的生成树(spanning tree)
抽象运算(abstract operation)

浙公网安备 33010602011771号