一、算法的基本概念
1. 算法的定义
**Algorithm:**A finite set of precise instructions for performing a computation or solving ploblem
2. 算法的性质
- **Input:**算法需要从特定的集合中接收输入
- **Output:**算法需要产生输出
- **Definiteness:**算法的步骤是精准定义的
- **Correctness:**算法对任何输入产生结果都是正确的
- **Finiteness:**对任意一组输入,算法在有限步操作后停止运行
- **Effectiveness:**在有限的时间内精确地执行算法的每一步
- **Generality:**适用于所有所需形式的问题,而不仅仅是一组特定的输入值
二、算法的复杂度
1. 复杂度的定义
- **复杂度(Complexity):**运行算法所需的时间、空间量
- **空间复杂度(Space Complexity):**与实现算法所用的数据结构紧密相关
- **时间复杂度(Time Complexity):**当输入具有特定大小时,可以用算法使用的运算次数来表示

2. 复杂度的分类
- **Best-case Time:**执行算法所需的最小时间