是什么
通常我们对于现实中的问题会进行建模,然后确定求解方法。算法 就是解决问题的方法描述,是指令的有限序列。
一个算法应该具备以下5个重要的特性
1、有穷性:
一个合理的算法对于合理的输入需要在有穷步之后结束,且每一步都需要在有穷时间内完成。
2、确定性
算法中的每一步都需要有确切的含义,不能有二义性。,相同输入,同一个输出。
3、可行性
一个算法是可行的,可以通过基本运算有限次操作实现。
4、输入
一个特定对象的集合中的零个或多个输入。
5、输出
与输入保持特定关系的量,有0个或者多个输出。
说明:
程序是某种语言对于算法的实现,程序描述了具体实现,而算法是思想,是方法。
算法的衡量指标:
1、正确性
算法正确执行,满足事先设定的功能和性能要求
a、无语法错误
b、合理的输入,必须要有满足要求的输出
2、可读性
注释和变量名,文档描述
3、健壮性
当输入数据不合理或者环境改变时,算法可以恰当的做出反应和进行处理,而不是产生莫名其妙的结果。(异常处理机制)
4、时间复杂度
算法要尽可能的快
5、空间复杂度
算法还要考虑内存空间使用率。
一句话总结
用最少的资源最短的时间,风险评估下做出最正确接地气的事情。
时间复杂度
由于程序执行的绝对时间是由计算机的软件和硬件、编程语言还