算法(Algorithm)是什么?

编程是为了让计算机帮助我们解决各种各样的问题,任何问题的解决都有一定的方法和步骤,计算机解决问题的处理步骤我们称之为算法

在计算机编程的过程中,提到“算法”总是让人觉得很深奥,很难理解到底什么是算法?以及算法在程序设计过程中起到了什么作用?其实在现实生活中我们经常会用“算法”的思想在解决一些问题,最常见的就是根据菜谱做菜。

菜谱记录了做出各色各样美味菜品的方法步骤。比如制作红烧肉的菜谱,会把制作红烧肉所必需的材料及用量都标注清楚,并且把烹制的过程、每一步需要的时间等都详细记录下来。任何人只要完全按照菜谱的方法和步骤去做,就一定能烹制出美味的红烧肉。而“算法”就是能让程序员编写出可靠、高效的计算机程序的“菜谱”(见图 1)。

算法就是计算机解决问题的具体步骤
图 1:算法就是计算机解决问题的具体步骤
 
编程是为了让计算机解决特定的问题,编程之前首先需要明确计算机解决该问题的具体步骤,这个处理步骤就是编写该程序所需要的“算法”。解决一个问题可以用不同的方法和步骤,因而针对同一问题的算法也有多种(见图 2)。

对于同一个问题,往往会有不同的算法
图 2:对于同一个问题,往往会有不同的算法
 
而编写程序就是通过某一种程序设计语言(比如 C语言)对算法的具体实现。算法独立于任何程序设计语言,同一算法可以用不同的程序设计语言来实现(见图 3)。
同一算法可以用不同的程序设计语言来编程实现
图 3:同一算法可以用不同的程序设计语言来编程实现
 
C语言程序:
#include <stdio.h>
int main()
{
    int x=7;
  while(x<1000)
  {
      printf("%d\n",x);
    x=x+7;
  }
  system("pause");
  return 0;
}

PASCAL语言程序:
program pl(input,output);
    var x:integer;
begin
    x:=7;
    while x<1000 do
        begin
            writeln(x);
            x:=x+7;
        end;
end;