一、数据结构的基本概念
1、抽象数据类型、逻辑结构和存储结构
1、数据包括数值型数据和非数值型数据。
2、数据的基本单位是数据元素,也称结点或数据记录。
数据元素中的数据项是有独立含义的数据最小单位,也称数据域。
三者之间的关系:数据>数据元素>数据项。
3、数据对象是相同特性数据元素的集合,是数据的一个子集。
4、数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
2、ADT常用定义格式:
ADT抽象数据类型名
{
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
基本操作:<基本操作的定义>
}ADT抽象数据类型名
数据的逻辑结构是指在数据对象中,数据元素之间的相互关系。
数据结构有集合、线性结构、树形结构、图结构4种。
集合中的数据元素除了同属一个集合外,数据元素之间没有其他关系。
线性结构的数据元素之间是一对一的关系,存在一种先后的次序关系。
树形结构的数据元素之间存在一种一对多的关系。
图结构的数据元素是多对多的关系。
3、数据结构的存储
数据的存储结构是数据的逻辑结构在计算机中的存储形式,有两种:顺序存储、链式存储。
1)数据的逻辑结构独立于其存储结构
2)在存储数据时,通常不仅要存储各数据元素的值,而且要存储数据元素之间的关系。
二、算法
1、算法:算法是解锁特定问题求解步骤的描述,在计算机中表现为有限的操作序列。
2、算法的五大特性:有穷性、确定性、可行性、输入、输出。
3、算法的描述方式:自然语言、伪代码、程序流程图和程序设计语言。
4、算法设计的四个目标:正确性、可读性、健壮性、高效率和低存储量。
5、算法的时间复杂度:在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。
记作:T(n)=o(f(n))
常用的时间复杂度所耗费的时间从小到大依次是:
O(1)<O(log2n)<O(n)<O(n2)<O(n3)<O(2^n)<O(n!)
常量阶 对数阶 线性阶 平方阶 立方阶 指数阶 阶乘阶
6、算法的空间复杂度:算法所需储存空间的量度。
记作:S(n)=O(f(n))