如何解读程序和算法的区别?
这个算是编程入门(启蒙)的基础概念了,现在很多少儿编程,其实并没有真的在编【程】,而是在【编】程——因为孩子这么小,根本学不会coding,所以算法启蒙是远早于写程序/代码的。
先说下基本概念:
程序是一组指令的集合,用于指导计算机执行特定的任务。它是计算机程序设计的产物,通常由程序员编写。程序告诉计算机如何执行一个特定的任务,包括输入、处理和输出。
算法是一组解决问题的规则和指令。它是一种逻辑上的思考方式,是解决问题的一种方法。算法可以用自然语言、流程图、伪代码等方式来描述,同时也可以用程序来实现。
用一张表来表示两者的区别:
程序 | 算法 | |
定义 | 一组指令的集合,用于指导计算机执行特定的任务 | 一组解决问题的规则和指令 |
实现方式 | 具体的实现方式 | 解决问题的思考方式 |
抽象程度 | 较低 | 较高 |
编写者 | 程序员 | 研究人员 |
描述方式 | 编程语言 | 自然语言、流程图、伪代码等 |
依赖关系 | 依赖于具体的编程语言或计算机 | 不依赖于具体的编程语言或计算机 |
作用 | 实现算法的具体方式 | 程序设计的基础 |
重要性 | 次重要 | 重要 |
再来举几个例子,方便题主理解。
我经常对6岁以下的小朋友举【积木】的例子。
假设你要搭积木,那么,
程序——就是搭积木的详细步骤。例如,拿出积木,按照形状和颜色分类,一块一块地搭建,直到构建出你想要的形状。
算法——就是一种将积木按照一定规则组合的方法。你可以选择不同的积木、不同的形状或数量等等,但只要你遵循了规定的步骤,最终会得到一个稳定的、符合你期望的积木结构。
对入门的新手来说,可以大致理解如下:
假设你要煮一锅米饭,那么,
程序——就是煮饭的详细步骤。例如,洗米,加水,煮沸,转小火,焖煮等等。
算法——就是一种将生米煮成熟饭的方法。例如,你可以选择不同的锅、使用不同的水量或火力等等,但只要你遵循了规定的步骤,最终会得到一锅熟饭。
再举个例子:
假设你想在一张纸上画一条直线,那么,
程序——就是画线的详细步骤。例如,拿出一支笔,准备一张纸,画出起点,沿着直线移动,画出终点等等。
算法——就是一种将两个点之间连接的方法。例如,你可以选择不同的笔、使用不同的压力或角度等等,但只要你遵循了规定的步骤,最终会得到一条直线。
简单来说,不需要会写代码,也可以学习算法,算法是一种解决问题的思考方式,不仅可以通过代码来实现,也可以用自然语言、流程图等方式来描述~