算法入门

算法简介

算法在计算机科学和软件工程中无处不在。选择合适的算法和数据结构可提高我们的计划成本和时间效率。

什么是算法?非正式地,算法是完成特定任务的过程。 [Skiena:2008:ADM:1410219]具体来说,算法是一个明确定义的计算过程,它将一些值(或一组值)作为输入,并产生一些值或一组值作为输出。因此,算法是将输入转换为输出的一系列计算步骤。Cormen et。人。没有明确指出算法不一定需要输入。 [Cormen:2001:IA:580470]

形式上,算法必须满足五个特征:[Knuth:1997:ACP:260999]

  1. 有限性。算法必须始终在有限数量的步骤之后终止。
  2. 确定性。必须精确定义算法的每个步骤; 必须严格规定要采取的行动。正是这种质量[Cormen:2001:IA:580470]用术语明确定义来指代。
  3. 输入。算法具有零个或多个输入。这些是在算法开始之前或在运行时动态地给予算法的量。
  4. 输出。算法具有一个或多个输出。这些是与输入具有指定关系的数量。我们期望当一次又一次地给出相同的输入时,算法产生相同的输出。
  5. 有效性。通常预期算法也是有效的。它的操作必须足够基本,以便它们可以在原则上完成,并且在有限的时间内由使用铅笔和纸的人完成。

缺乏有限性但满足算法的所有其他特征的过程可以称为计算方法。 [Knuth 的:1997:ACP:260999]