数据:信息的载体,是计算机程序加工的原料
数据元素:数据的基本单位,一般来说,能独立、完整地描述问题世界的一切实体都是数据元素
数据结构:相互之间存在一定关系的数据元素的集合。数据结构又分为逻辑结构和存储结构。
逻辑结构:数据元素之间的关联方式、邻接关系,有以下4中逻辑结构
1.集合:没任何关系
2.线性结构:一对一的线性关系,特殊的线性表:栈和队列
3.树结构:一对多的层次关系
4.图结构:多对多的任意关系
存储结构:存储结构除了存储数据元素之外,还必须隐式或显示地存储数据元素之间的逻辑关系,有以下2种存储结构
1. 顺序存储
2. 链接存储
抽象数据类型:ADT
ADT 抽象数据类型名
Data
数据元素之间逻辑关系的定义
Operation
操作1
前置条件:执行此操作前数据所必须的状态
输 入:执行此操作所需要的输入
功 能:该操作将完成的功能
输 出:执行该操作后产生的输出
后置条件:执行该操作后数据的状态
操作2
……
操作n
……
endADT
算法的5个特性
1. 输入
2. 输出
3. 有穷性:一个算法必须在有穷时间、有穷步骤内完成
4. 确定性:不存在二义性,相同输入只能得到相同输出
5. 可行性:算法描述的操作可以通过已经实现的基本操作,执行有限次来实现。
算法分析:
1. 时间复杂度:算法中,基本语句的执行次数;
for(i = 0;i < n;i++)
for(j = 0;j < n;j++) {}
2. 空间复杂度:算法执行过程中需要的辅助空间数量;
S(n)=O(f(n)) 包括:输入数据、程序本身、辅助变量
一个能动态理解数据结构的网站:https://visualgo.net/en