ZJU 数据结构课程笔记 | 绪论


这是我在学习浙江大学 MOOC『数据结构』的第一章:绪论 的过程中做的笔记。
ZJU 数据结构 MOOC 课程链接
什么是数据结构?
思考:如何管理图书馆里的书?
数据对象在计算机中的组织方式
数据对象必定与一系列加在其上的操作相关联
完成这些操作所用的方法就是算法
抽象数据类型(Abstract Data Type)
数据类型
三要素:
- 类型名称
- 数据对象集
- 数据集合相关联的操作集合
抽象
- 与存放数据机器无关
- 与数据存储的物理结构无关
- 与实现操作的算法和编程语言无关
- 只描述数据对象集和相关操作集的功能,而不关心其实现的过程
什么是算法?
一个有限指令集
接收一些输入(可无)
产生输出在有限步骤后终止
每一条指令必须:
- 1.有充分明确的目标
- 2.计算机能处理的范围之内
- 3.描述应不依赖与任何一种计算机语言以及具体的实现手段
什么是好的算法
在分析一般算法的效率时,关注空间复杂度 + 时间复杂度
最坏情况复杂度(分析频率更高)
平均复杂度
关于时间复杂度分析
电脑给程序运行分配的内存是有限的,一旦调用栈空间的数据超过了为其分配的范围,就会导致程序向堆栈外写入数据,导致程序崩溃或安全漏洞发生。