算法的基本概念
-
什么是算法
程序 = 数据结构 + 算法
💡 数据结构是要处理的信息;算法是处理信息的步骤
算法(Algorithm)是对特定问题求解步骤的一种描述,它是指令的有限序列,其中的每条指令表示一个或多个操作。
eg:番茄炒蛋
-
算法的五个特性
-
有穷性
一个算法必须总在执行有穷步之后结束,且每一步都可在又穷时间内完成。
- 算法必须是有穷的,程序可以是无穷的。
- 解释:
- 算法 → 需要用有限步骤解决某个特定的问题。
- 程序 → 比如微信就是程序,不是算法。
-
确定性
算法中每条指令必须有确切的含义,对于相同的输入只能得出相同的输出。
-
可行性
算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现。
-
输入
一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合。
-
输出
一个算法有一个或多个输出,这些输出是与输入有着某种特定关系的量。
-
-
“好”算法的特质
-
正确性
-
可读性(注释!)
-
健壮性
输入非法数据时,算法能适当的作出反应或进行处理,而不会产生莫名的输出结果。
-
高效率
花的时间少。时间复杂度低
-
低存储量需求
不费内存。空间复杂度低。
-