算法是在有限步骤内求解某一问题所使用的一组定义明确的规则,也就是计算机解题的过程。在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法。前者是推理实现的算法,后者是操作实现的算法。
不同的算法可能用不同的时间、空间或效率来完成同样的任务,一个算法的优劣可以用空间复杂度与时间复杂度来衡量。另外,算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。
一个算法应该具有以下五个重要的特征:
1、有穷性:一个算法必须保证执行有限步之后结束。
2、确切性:算法的每一步骤必须有确切的定义。
3、输入:一个算法有零个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件。
4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果,没有输出的算法是毫无意义的。
5、可行性: 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。