算法(algorithm)是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。此外,一个算法还具有下列5个重要特性:
一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有穷时间内完成。
算法中每一条指令必须有确切的含义,读者理解时不会产生二义性。即对于相同的输入只能得出相同的输出。
一个算法是可行的,即算法中描述的操作都是以逋过已经实现的基本运算执行有限次来实现的。
一个算法有零个或多个的输入,这些输入取自于某个特定的对象的集合。
一个算法有一个或多个的输出,这些输出是同输入有着某种特定关系的量。
通常设计一个“好”的算法应考虑达到以下目标: