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

这是我在学习浙江大学 MOOC『数据结构』的第一章:绪论 的过程中做的笔记。

ZJU 数据结构 MOOC 课程链接

什么是数据结构?

思考:如何管理图书馆里的书?

数据对象在计算机中的组织方式

数据对象必定与一系列加在其上的操作相关联

完成这些操作所用的方法就是算法

抽象数据类型(Abstract Data Type)

数据类型

三要素:

  1. 类型名称
  2. 数据对象集
  3. 数据集合相关联的操作集合

抽象

  • 与存放数据机器无关
  • 与数据存储的物理结构无关
  • 与实现操作的算法和编程语言无关
  • 只描述数据对象集和相关操作集的功能,而不关心其实现的过程

p1

什么是算法?

一个有限指令集

接收一些输入(可无)

产生输出在有限步骤后终止

每一条指令必须:

  • 1.有充分明确的目标
  • 2.计算机能处理的范围之内
  • 3.描述应不依赖与任何一种计算机语言以及具体的实现手段

什么是好的算法

在分析一般算法的效率时,关注空间复杂度 + 时间复杂度

最坏情况复杂度(分析频率更高)

平均复杂度

关于时间复杂度分析

p2

电脑给程序运行分配的内存是有限的,一旦调用栈空间的数据超过了为其分配的范围,就会导致程序向堆栈外写入数据,导致程序崩溃或安全漏洞发生。

复杂度的渐进表示法

p3