参考手册 / 网络常识 / 网络常识
什么是程序算法?

简单来说,程序算法就是:为了完成一个特定任务而设计的一系列清晰、有限的步骤。

你可以把它想象成一份菜谱。比如要做番茄炒蛋,菜谱会写明:

  1. 准备食材

  2. 切番茄

  3. 打蛋

  4. 下锅炒

  5. ...直到出锅

算法也是这样,它告诉计算机先做什么、后做什么、在什么条件下做什么。程序就是用计算机能懂的语言(如Python、Java)把算法写出来。

算法的几个关键特点:

  • 有穷性:必须在有限的步骤内结束,不能无限循环。

  • 确定性:每一步指令必须明确、无歧义。比如“放一点盐”就不明确,应该说“放2克盐”。

  • 输入和输出:通常有输入(初始数据),并能产生一个或多个输出(结果)。

  • 可行性:每一步都应该是可以实际执行的。

举个例子:查找数字

问题是:在一个有序列表 [2, 5, 8, 12, 19, 23] 中,找到数字 19 的位置。

  • 简单算法(依次查找):从第一个开始,一个一个往后找,直到找到19。如果列表很大,效率就比较低。

  • 高效算法(二分查找):

    1. 找到列表中间的数字 12。

    2. 因为 19 > 12,所以肯定在后半段 [19, 23] 里。

    3. 再找后半段的中间数字 19,就找到了。
      这种方法即使列表里有10亿个数字,也最多只需30次就能找到。

算法与程序的关系:

  • 算法:是解决问题的思想和方法,是抽象的,可以用文字、流程图表示。好比一份用中文写的菜谱思路。

  • 程序:是把算法用计算机语言具体实现的代码。好比把中文菜谱“翻译”成计算机能懂的机器指令。

总的来说,算法是程序的灵魂。同一个问题,用不同算法效率可能天差地别。设计出好的算法,是写出优秀程序的核心。

下一篇:什么是API?