算法是一系列定义明确的步骤,这些步骤可以在有限的时间内产生结果。
定义明确的步骤:这是您可以执行或计算的精确定义的步骤。仅通过阅读步骤,您就知道您必须做什么以及如何去做。具体来说,您可以使用已知的编程语言编写它,并确保程序片段与该步骤完全匹配。
顺序:按照指定的顺序执行步骤。根据数据(循环)的不同,步骤可以执行多次,也可以根据数据(if语句)完全不执行步骤。并行算法仅在步骤上强加了部分顺序,因此在这里我简化了。将其描述为部分有序的集合而不是序列会更正确,但是我想让这些单词更简单。此外,很容易将完整排序的部分排序集合嵌入。
结果:结束状态或值。它不一定是预先可预测的,但必须是满足某些条件的明确目标。这确实意味着操作系统不是算法,尽管它使用了大量算法。
有限:至少在可以运行足够长的机器上,算法一定会停止。不一定要保证它在可预测的时间内停止,也不能保证它会在太阳膨胀并在任何现有机器上变红之前停止。这也意味着操作系统不是算法,因为理想情况下它将永远运行。我已经见过“过程”一词,用于描述如果我们确定它会在某个时候停止的话,那将是一种算法。(有可能有一个算法会在未知的时间内停止。假设,例如,在非构造性证明中,哥德巴赫猜想在数学上被证明是错误的,因此有一个偶数> 2而不是两个质数之和。简单地测试偶数的算法最终会终止,
该算法是一种有意抽象的事物,因此我们不考虑诸如“在宇宙热死之前物理上可以执行此操作?”之类的问题。他们很难回答。如果它与计算机操作有关,那么很容易用编程语言来实现它。