算法
是指解决特定问题求解步骤的描述
,在计算机中表现为指令的有限序列,并且每个指令表示一个或多个操作
算法的特性
算法有以下几种特性
输入
:算法具有零个或多个输入输出
:算法至少有一个或多个输出有穷性
:算法在有限的步骤之后会自动结束而不会无限循环,并且每个步骤在可接受的时间范围内完成确定性
:算法中的每一步都有确定的含义,不会出现二义性可行性
:算法的每一步都是可行的,即每一步都能通过执行有限次数完成
算法的设计要求
衡量一个算法,有以下几个方法
正确性
:是指算法至少具有输入、输出和加工处理无歧义,并且可以正确反映问题的需求,以及正确得到问题的答案,所谓的正确
一共有四个层次:
- 没有语法错误
- 能够根据正确的输入的值得到满足要求的输出结果
- 能够根据错误的输入的值得到满足要求的输出结果
- 对于精心设计且极其刁钻的测试数据都能满足要求的输出结果
可读性
:便于阅读、理解和沟通
健壮性
:当输入的数据不合法时,算法也能给出相关的处理,而不是产生异常或者莫名其妙的错误,可以简单理解为:算法的容错能力
时间效率高和存储量低
:对算法进一步优化,尽量慢速时间效率高和空间存储量低的需求