目录
1.算法
1.是什么
首先我们要明白什么是算法,简单来说,算法是描述解决问题的方法。而用文绉绉的话来解释的话就是:算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令包含一个或多个操作。
2.算法的特征
算法有五大特征:输入,输出,有穷性,可行性和确定性。
①输入,输出
该特征很好理解,一个算法可以有0个输入或多个输入,就比如学习编程的第一个接触的打印“hello world”它就不需要任何输入参数,所以算法的输入可以是0个。但是一个算法必须要有一个或者多个输出,因为如果没有输出,那这个算法存在的意义是什么?输出的形式可以是多种多样的。
②有穷性
是指算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每一个步骤都在可接受的时间内完成。我们在现实生活中经常会写出死循环的代码(我是经常遇到的\(`Δ’)/),但是假如有一个程序,计算机要走很久很久,那么其实该程序就没有什么意义了。
③确定性
算法的每一步骤必须有确切的定义,不会出现二义性。
④可行性
算法的每一步都必须是可行的,也就是说,每一步都能够通过执行有限次数完成。可行性意味着算法可以转换为程序上机运行,并得到正确的结果。尽管在目前计算机界也存在那种没有实现的极为复杂的算法,但不是说不能完成。
3.要求
正确性:
算法的正确性是指算法至少应该具有输入、输出和加工处理无歧义性、能正确反映问题的需求、能够得到问题的正确答案。
而正确性又分为以下四个层次
1.算法程序没有语法错误 2.算法程序对于合法的输入数据能够产生满足要求的输出结果 3.算法程序对于非法的输入数据能够得出满足规格说明的结果
4.算法程序对于精心选择的,甚至刁难的测试数据都有满足要求的输出结果
可读性:
算法设计的另一目的是为了便于阅读、理解和交流。
健壮性:
当输入数据不合法时,算法也能做出相关处理,而不是产生异常或莫名其妙的结果。