数据结构的绪论是对数据结构的简介。
通过绪论你可以快速了解下数据结构。不过第一次看时候,会有一种抽象的感觉,没事,等你学到后面再反过来看的时候,又有新的发现。
好了,开始上干货。
1、数据(data)是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
2、数据元素(data element)是数据的基本单元。
3、数据对象(data object)是性质相同的数据元素的集合,是数据的一个子集。
4、数据结构(data structure)是相互之间存在一种或多种特定关系的数据元素的集合。
4 类基本结构:(1)集合(2)线性结构(3)树形结构(4)图状结构或网状结构
1、结构定义中的“关系”描述的是数据元素之间的逻辑关系,因此又称为数据的逻辑结构。
2、数据结构在计算机中的表示(又称映像)称为数据的物理结构,又称存储结构。
3、数据元素之间的关系在计算机中有两种不同的表示方法:顺序映像和非顺序映像,对应两种不同的存储结构:顺序存储结构和链式存储结构:
顺序映像借助元素在存储器中的相对位置表示;
非顺序映像借助指示元素存储地址的指针表示。
4、数据类型
抽象数据类型(Abstract Data Type,简称 ADT)是指一个数学模型以及定义在该模型上的一组操作。
ADT 可细分为 3 种类型:原子类型,固定聚合类型,可变聚合类型。
ADT 抽象数据类型名 {
数据对象:<数据对象的定义> D
数据关系:<数据关系的定义> S
基本操作:<基本操作的定义> P
} ADT 抽象数据类型名
5、算法(algorithm)是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作;一个算法还具有下述 5 个重要特性:①有穷性②确定性③可行性④输入(0 个或多个)⑤输出(1 个或多个)。
6、算法设计的要求:①正确性(correctness)②可读性(readability)③健壮性(robustness)④效率与低存储量需求。
1、算法效率的度量
一般情况下,算法中基本操作重复执行的次数是问题规模 n 的某个函数 f(n),算法的时间度量度记作T(n) = O( f(n) )它表示随时间规模 n 的增大,算法执行时间的增长率和 f(n)的增长率相同,称作算法的渐近时间复杂度,简称时间复杂度。以空间复杂度作为算法所需存储空间的量度,记作S(n) = O( f(n) ),语句的频度指的是该语句重复执行的次数。
2、最坏时间复杂度:指在最坏情况下,算法的时间复杂度;
平均时间复杂度:指所有可能输入实例在等概率出现的情况下,算法的运行时间;
3、常见的渐近时间复杂度有:
O(1)<O(log2n)<O(n)<O(nlog2n)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)
O
(
1
)
<
O
(
log
2
n
)
<
O
(
n
)
<
O
(
n
l
o
g
2
n
)
<
O
(
n
2
)
<
O
(
n
3
)
<
O
(
2
n
)
<
O
(
n
!
)
<
O
(
n
n
)