【算法设计与分析】算法概论
1、算法的非正式定义
算法是一系列解决问题的清晰指令,即对符合一定规范的输入,在有限时间内获得所要求的输出。
2、关于算法的几个要点
(1)算法的每个步骤都必须清晰、明确、不含糊。
(2)算法所处理的值域必须仔细定义。
比如:求一元二次方程的跟,如果自己设计的算法是求实根,则该算法只使用于:b*b-4*a*c>=0的情况,其它情况则不能使用该算法。
(3)同样一种算法可以用不同的形式描述。
算法是跟计算机语言没有关系的。例如:我们可以使用伪代码、自然语言来描述算法。
(4)同一个问题可能存在不同的算法。
(5)同一个问题的不同算法不仅解题思路不同,而且解题速度可能有明显差别。
3、算法与程序
算法:是描述下述性质的指令序列:
(1)输入:有零个或多个外部量作为算法的输入。
为什么有零个输入呢?因为有些问题是不通过外部输入的方式来描述问题,而通过在计算机内部产生。比如:随机数。
输入是指描述问题的数据。
(2)输出:算法至少产生一个量作为输出。
输出就是对问题答案的输出。
(3)确定性:组成算法的每条指令清晰、无歧义。
指令要具体化。
(4)有限性:算法中每条指令的执行次数、时间有限。
程序:是算法用某种程序设计语言的具体实现。
程序可以不满足算法性质(4)。