上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.3.2 算法的特点
解决问题我们需要一个可行的算法,而如何去衡量这个算法是否得当,是否可行呢?通常,算法具有以下5个重要的特征。
1.有穷性
一个算法应包括有限个操作步骤,其中每一步都应在合理的时间范围内完成。有的可能要花很长的时间来执行指定的任务,但仍将在一定的时间内终止。执行的时间没有严格的限制,受所要处理问题的约束。
2.确定性
算法在指导计算执行每步程序时,这些指令都是明确的,没有任何歧义。例如:
输出:A/正整数
是无法执行的,因为正整数指的是一类数,没有指定A除以哪一个正整数,所以这个步骤是不确定的。
3.有效性
算法中的每个步骤都应该是有意义、能够有效执行的,并能得到确定的结果。比如,开方运算的数不能是负数;分母不能够为0。
4.输入
一个算法有零个或多个输入。在某些算法中,所需要的数据可以由用户用输入设备输入,例如,求两个数中的较大值,这两个数可以是用户随意输入的两个数,它们的值是不确定的。另外在编程的过程中也可以直接用两个确定的数进行比较,这时就不需要用户的输入,即零输入。
5.输出
一个算法有一个或多个输出。算法的输出反映了输入数据加工后的结果,没有输出的算法是毫无意义的。例如:求两个数的最大公约数,执行后,若这两个数有最大公约数就输出,若没有最大公约数就输出“这两个数无最大公约数”给用户以反馈。