Course playlist
算法描述方法入门
学习用自然语言、流程图、伪代码描述算法
什么是算法描述?
算法描述就是用不同的方法把解决问题的步骤写出来,让别人能够理解。就像我们告诉别人怎么做一件事,可以用说话、画图或者写步骤说明。
简单理解:算法描述就是"如何告诉计算机(或别人)一步一步地解决问题"。
1. 自然语言描述
自然语言描述就是用我们平时说话、写文章的语言来描述算法步骤。这是最容易理解的方法。
示例:计算两个数的和
第一步:准备两个数,比如5和3
第二步:把这两个数相加
第三步:得到结果8
第四步:输出结果
第二步:把这两个数相加
第三步:得到结果8
第四步:输出结果
优点:容易理解,不需要学习特殊符号
缺点:不够精确,可能有歧义,写起来比较啰嗦
缺点:不够精确,可能有歧义,写起来比较啰嗦
2. 流程图描述
流程图是用图形符号和箭头来表示算法步骤的方法。就像画地图一样,让人一看就明白。
示例:判断一个数是正数、负数还是零
开始
开始判断
输入
输入一个数
判断
这个数大于0吗?
↓ 是 → 输出"正数"
↓ 否 → 这个数等于0吗?
↓ 是 → 输出"零"
↓ 否 → 输出"负数"
结束
结束判断
常用流程图符号
| 符号 | 名称 | 用途 |
|---|---|---|
| ▢ | 开始/结束框 | 表示算法的开始和结束 |
| ▱ | 输入/输出框 | 表示输入数据或输出结果 |
| ◇ | 判断框 | 表示条件判断(是/否) |
| □ | 处理框 | 表示计算或处理步骤 |
| → | 流程线 | 表示步骤的执行顺序 |
优点:直观、清晰,适合表示复杂的判断和循环
缺点:画起来比较费时间,修改不方便
缺点:画起来比较费时间,修改不方便
3. 伪代码描述
伪代码是介于自然语言和编程语言之间的描述方法。它像编程语言一样有结构,但又不用完全遵守编程语言的严格语法。
示例:找出三个数中的最大值
开始
输入三个数:a, b, c
如果 a > b 并且 a > c 那么
最大值 = a
否则如果 b > a 并且 b > c 那么
最大值 = b
否则
最大值 = c
结束如果
输出 "最大值是:" + 最大值
结束
伪代码常用关键字
- 开始/结束:表示算法的开始和结束
- 输入/输出:表示获取数据或显示结果
- 如果...那么...否则:表示条件判断
- 循环...直到:表示重复执行
- 当...做:表示条件循环
优点:结构清晰,接近编程语言,容易转换为代码
缺点:需要学习一些约定写法,没有统一标准
缺点:需要学习一些约定写法,没有统一标准
三种方法比较
| 描述方法 | 适合场景 | 优点 | 缺点 |
|---|---|---|---|
| 自然语言 | 向非技术人员解释、简单算法 | 最容易理解,不需要学习 | 不精确,可能有歧义,冗长 |
| 流程图 | 教学、复杂逻辑、流程分析 | 直观清晰,逻辑关系明确 | 绘制费时,修改不便 |
| 伪代码 | 程序员交流、算法设计、准备编码 | 结构清晰,接近代码,易转换 | 需要学习约定,无统一标准 |
如何选择?简单算法用自然语言,复杂逻辑用流程图,准备编程用伪代码。
动手练习
现在我们来练习一个简单的算法:计算1+2+3+...+10的和
任务1:用自然语言描述
请用自然语言(中文)描述如何计算1到10的和:
任务2:用伪代码描述
请用伪代码描述如何计算1到10的和:
任务3:理解流程图
下面是一个计算1到10的和的流程图,请理解它的执行过程:
1. 开始
2. 设 sum = 0, i = 1
3. 判断 i ≤ 10?
是 → sum = sum + i, i = i + 1,回到第3步
否 → 输出 sum
4. 结束
学习总结
让我们回顾一下今天学到的三种算法描述方法:
1
自然语言:就像平常说话一样描述步骤
2
流程图:用图形和箭头画出来的算法"地图"
3
伪代码:像编程语言但不用严格遵守语法的描述
记住:不同的描述方法有不同的用途,根据具体情况选择最合适的方法。
| 题目 | 对/错/率 | 难度 | 记录 | 通过 |
|---|
| 姓名 | 分数 | 提交时间 | 操作 |
|---|