一、问题驱动—>画出唯一的逻辑结构—>定义存储结构—>实现相应的操作
二、算法—>(定义\特点)步骤—>实现—>评价标准
算法有五大特点:
- 可行性
- 确定性
- 有穷性(有限性)
- 0个或0个以上的输入
- 至少一个以上的输出
评价标准:
- 时间复杂度
- 是估计值
- 与程序规模和输入的因素有关
- O(n) 通过大O法分析
- 空间复杂度
- 与存储算法本身所占用的空间有关
- 与算法再运行过程中临时占用的辅助空间有关
- 与算法的输入/输出数据占用的空间有关
算法设计要求:
- 正确性
- 可读性
- 健壮性(容错性)
- 效率与低存储量需求
三、抽象数据类型(ADT)就是存储结构
+操作
四、时间复杂度
增长率由慢到快
尽量减少指数阶的算法
5. 常量阶与n无关 O(1)
6. log n O(log n)
7. n阶 O(n)
8. n log n O(n log n)
9. 平方阶 O(n²)
10. 立方阶 O(n³)
11. 指数阶 O(2^n)
五、数据结构的基本概念和术语
- 数据
描述客观事物的数字、字符以及所有能输入到计算机中并被计算机程序处理的符号的集合。(数字、字符、声音、图形、图像等等) - 数据元素(类似表中的每一行,因为,每一行代表一个完整的信息)
数据的基本单位
。在计算机程序中常常作为一个整体进行考虑和处理。(如记录/结构) - 数据项(类似表中的每一列)
数据的不可分割的最小单位
。(如结构中的域) - 数据对象
性质相同的数据元素的集合,是数据的一个子集。