Algorithm
---
Introduce
What is Algorithm?
---算法是求解问题的步骤---
算法的特性
-
有穷性:一个算法必须在有穷步后结束,每一步必须在有穷时间内完成
---算法有穷而程序无穷---
-
确定性:每条指令不能有歧义,即无论运行多少次,相同的输入总能得到相同的输出
-
可行性:算法中描述的操作都可以通过已经实现的基本运算执行有限次实现
-
输入
-
输出
---回到上面的例子---
在step3中,由于并没有规定年龄相同的对象间的排列顺序,导致算法的确定性遭到破坏,因此,严格意义上其并不是一个算法
再看一个简单的类比,对于数学式 :
$$
y=f(x)
$$
其中:x其实就是输入,y则表示输出,而f()就是一个算法
一个好的算法应该具备哪些特性?
- 正确性
- 可读性
- 健壮性:面对非法数据仍然具有反应和处理能力
- 高效率与低存储要求:高效率对应时间复杂度低,低存储对应空间复杂度低