一、算法的基本概念

1. 算法的定义

**Algorithm:**A finite set of precise instructions for performing a computation or solving ploblem

2. 算法的性质

  1. **Input:**算法需要从特定的集合中接收输入
  2. **Output:**算法需要产生输出
  3. **Definiteness:**算法的步骤是精准定义的
  4. **Correctness:**算法对任何输入产生结果都是正确的
  5. **Finiteness:**对任意一组输入,算法在有限步操作后停止运行
  6. **Effectiveness:**在有限的时间内精确地执行算法的每一步
  7. **Generality:**适用于所有所需形式的问题,而不仅仅是一组特定的输入值

二、算法的复杂度

1. 复杂度的定义

  1. **复杂度(Complexity):**运行算法所需的时间、空间量
  2. **空间复杂度(Space Complexity):**与实现算法所用的数据结构紧密相关
  3. **时间复杂度(Time Complexity):**当输入具有特定大小时,可以用算法使用的运算次数来表示

image.png

2. 复杂度的分类

  1. **Best-case Time:**执行算法所需的最小时间