第一章 绪论
1.1 数据结构的基本概念
1.1.1 基本概念和术语
- 数据
- 数据元素、数据项
- 数据对象、数据结构
- 数据类型、抽象数据类型
1.1.2 数据结构三要素
逻辑结构
逻辑结构:指数据元素之间的逻辑关系,即从逻辑关系上描述数据。
1)集合
2)线性结构
3)树形结构
4)图结构
数据的运算
运算的定义是针对逻辑结构的,指出运算的功能;
运算的实现是针对存储结构的,指出运算的具体操作步骤。
物理结构
数据的物理结构(存储结构):指数据结构在计算机中的表示(又称映像)。数据的存储结构是用计算机语言实现的逻辑结构。
- 顺序存储
- 链式存储
- 索引存储
- 散列存储
注意:
1.2 算法和算法评价
1.2.1 算法的基本概念
- 什么是算法
- 算法的五个特性(算法必须具备的特性)
1)有穷性
2)确定性
3)可行性:算法中描述的操作都可以通过已经实现的 基本运算执行有限次 来实现。
4)输入:一个算法 有零个或多个输入,这些输入取自于某个特定的对象的集合。
5)输出:一个算法 有一个或多个输出,这些输出是与输入有着某种特定关系的量。
- "好"算法的特质(设计算法时要尽量追求的目标)
1)正确性。算法应能够正确地解决求解问题 。
2)可读性。算法应具有良好的可读性,以帮助人们理解。
3)健壮性。输入非法数据时,算法能适当地做出反应或进行处理,而不会产生莫名其妙的输出结果。
4)高效率 与 低存储量需求。即 花的时间少,时间复杂度低 和 不费内存,空间复杂度低。
1.2.2 算法效率的度量
时间复杂度
只考虑阶数,用大O表示法
问题一:
✨✨✨
问题二:如果有好几千行代码
即:
例子:
算法的时间复杂度:
空间复杂度
空间复杂度:
函数递归调用带来的内存开销: