02.谈谈算法

什么是算法?

算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。

不同的指令序列会有不同的结果

基于给定的问题,可以有多种算法进行求解

就像没有药能够包治百病,一个算法也不具备通解所有问题的能力


算法的特性

算法具有五个基本特征:输入、输出、有穷性、确定性、可行性。

输入

算法具有零个或多个输入参数。

绝大多数情况下,输入参数是必要的,但是有类似输出”Hello World“这种则不需要进行输入。

输出

算法至少有一个或多个输出

这里的输出可以是一个返回值(return),也可以是打印形式输出(print),如果没有输出则算法没有意义。

有穷性

指算法在执行有限的步骤之后,会自动结束,不会出现无限循环,并且每个步骤能够在可接受的时间范围内完成。

如果算法永远不会结束(无限循环或几百年以后),那么算法就没有意义了。

确定性

算法在一定条件下只有一条执行路径,相同的输入具有相同的结果。

算法的每个步骤都应该被精确定义,而无歧义。

可行性

算法的每一步都必须是可行的,也就是说每一步都可以通过执行有限的次数完成。


算法的设计要求

正确性

指算法至少应该具有输入、输出,加工处理无歧义、能够正确反应问题的需求、能够得到问题的正确答案

大体分为一下四点:

1、算法程序没有语法错误


2、算法程序对合法输入都能有满足要求的输出

3、算法程序对非法输入能够具有有效地说明

4、算法程序对故意刁难的测试输入也有满足要求的输出

可读性

写代码的目的,第一是为了让计算机可以执行,第二是为了便于自己和他人阅读,便于日后修改,所以需要便于阅读、理解和交流。

健壮性

当输入非法时,能够做出相应的处理,而不是产生异常、不符合要求的输出、甚至是崩溃。

时间效率高、存储量低

时间效率尽可能高,存储量尽可能低,虽然不能同时兼顾,但尽量找到一个平衡,以及根据需求进行确定使用空间换取时间,还是使用时间换取空间。


内容均来源于学习资料,在学习过程中进行记录,如有侵权联系作者进行删除


Change the world by program

你可能感兴趣的:(02.谈谈算法)