将mooc中浙江大学的数据结构课程笔记与相关实现整理如下:
原视频链接:https://www.icourse163.org/course/ZJU-93001?tid=1459700443
1 什么是数据结构
递归实现占用空间比较大;
采用第二种实现的时间短。
数据结构是关于数据对象在计算机中间的组织方式。(逻辑结构、物理存储结构)
抽象数据类型(Abstract Data Type):
- 数据类型:数据对象集;数据集合相关联的操作集;
- 抽象:描述数据类型的方法不依赖于具体实现:与存放数据的机器无关;与数据存储的物理结构无关;与实现操作的算法和编程语言均无关
2 什么是算法
算法(Algorithm):一个有限指令集;接受一些输入(有些情况下不需要输入);产生输出;一定在有限步骤之后终止;每一条指令必须有充分明确的目标,不可以有歧义,必须在计算机能处理的范围之内,描述应不依赖于任何一种计算机语言以及具体的实现手段。
好的算法:
- 空间复杂度S(n):根据算法写成的程序在执行时占用的存储单元的长度。这个长度往往与输入数据的规模有关。空间复杂度过高的算法可能导致使用的内存超限,造成程序非正常中断。
- 时间复杂度T(n):根据算法写成的程序在执行时耗费时间的长度。与输入数据的规模有关
3 应用实例 最大子列和问题
分治法: