目录
第一章 绪论
一、数据结构的基本概念
1.数据
数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。
数据不仅仅包括整型、实型等数值类型,还包括字符及声音图像、视频等非数值类型。
2.数据元素与数据项
数据元素是数据的基本单位,通常作为一个整体进行考虑和处理,一个数据元素可由若干数据项组成,数据项是构成数据素的不可分割的最小单位
3.数据对象,数据元素,数据项之间的关系
数据对象是具有相同性质的数据元素的集合,是数据的一个子集。
相同的 数据元素 可以组成不同的 数据结构
不同的 数据元素 可以组成相同的 数据结构
二、数据结构的三要素
数据结构这门课注重的是数据元素之间的关系,和对这些数据元素的操作,而不关心具体的数据表想内容
三、算法的基本概念
1.好的算法要求:
- 正确性。能够正确的求解问题
- 可读性。以便于别人理解
- 健壮性。输入非法数据时,算法能适当地做出反应或进行处理,而不会产生莫名的输出结果
- 高效率和低存储量需求。花的时间少,时间复杂度低,不费内存,空间复杂度低。
2.算法的时间复杂度
时间开销与问题规模n之间的关系
复杂度计算:只考虑阶数高的部分,忽略比最高项低的项
大O表示“同阶”,同等数量级
T(n)=n+3 -- O(n)
T(n)=n^2+n+2 -- O(n^2)
常数 < 对数 < 线性 < 线性对数 < 平方 < 立方 < 指数 < 阶乘 < 幂指
3.算法的空间复杂度
空间开销(内存开销)与问题规模n之间的关系
程序代码存入内存中大小是不变的,和问题规模无关
计算空间复杂度时,只需关注存储空间大小与问题规模相关的变量
空间复杂度 = 递归调用的深度