算法

算法
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

特征

一个算法应该具有以下五个重要的特征:
有穷性

(Finiteness)
算法的有穷性是指算法必须能在执行有限个步骤之后终止;
确切性

(Definiteness)
算法的每一步骤必须有确切的定义;
输入项

(Input)
一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;
输出项

(Output)
一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;
可行性

(Effectiveness)
算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成(也称之为有效性)。

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
fIMQpzOBF8W9vC+uZWUSOQ==