(总结源自《大话数据结构》,初学数据结构推荐此书)
算法
算法是解决特点问题求解步骤的描述 ,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作
算法的特性
算法由五个基本特性:输入、输出、有穷性、确定性和可行性
1.输入输出
算法有零个或多个输入,至少有一个或多个输出。
2.有穷性
算法在执行有限步骤后,自动结束而不会出现无限循环,而且每个步骤在可接受的时间内(在实际应用中需要是在一个合理的时间里,两百年也是有穷,但肯定不能接受)完成。(无限循环和死循环一般都是需要避免的)
3.确定性
算法的每一步都具有确定的含义,不会出现二义性(精确定义,不会有歧义)
4.可行性
算法的每一步都必须是可行的,每一步都能通过执行有限次数来完成。
算法设计的要求
1.正确性
算法的正确性是指算法至少应该具有输入输出和加工处理无歧义性,能正确反映问题的需求,能够得到问题的正确答案。
算法的正确分为四个层次
1.算法程序没有语法错误
2.算法程序对于合法的输入能够产生满足要求的输出结果
3.算法程序对于非法的输入数据能够得到满足规格说明的结果
4.算法程序对于精心选择的,甚至刁难的测试数据都有满足要求的输出结果
不难看出,四个层次由低到高,对算法的要求越来越高,我们将层次3作为一个算法是否正确的标准。
2.可读性
算法设计的另一目的是为了便于阅读,理解和交流。可读性也是算法好坏的主要标志。
3.健壮性
当输入数据不合法时,算法也能做出相关处理,而不是产生异常或莫名其妙的结果
4.时间效率高和存储量低
算法效率的度量方法