第三课:算法基础
入门 学考加油站 · 2026-10-21 · 阅读 2

考点清单
- 算法的定义与五大特征:有穷性、确定性、输入、输出、可行性
- 三种描述方式:自然语言、流程图、伪代码(各有什么优缺点)
- 流程图符号:起止框、处理框、判断框、输入输出框、流程线
- 三种基本结构:顺序、分支、循环(当型与直到型的区别)
- 读流程图/读程序写结果——本课的核心题型
- 常见算法思想:枚举、解析、排序(冒泡)、查找(顺序查找、二分查找及前提)
一、什么是算法
算法是解决问题的一系列明确、有限的步骤。做菜的菜谱、导航规划的路线,本质都是算法。对算法的五点要求叫五大特征:
| 特征 | 含义 | 反例(不满足会怎样) |
|---|---|---|
| 有穷性 | 步数有限,能结束 | 死循环不是合格算法 |
| 确定性 | 每一步含义唯一,没有歧义 | "加适量盐"就不确定 |
| 输入 | 可以有 0 个或多个输入 | — |
| 输出 | 至少有 1 个输出 | 只算不给结果没意义 |
| 可行性 | 每一步都能实际执行 | "心想事成"不可行 |
选择题常把某个特征的描述改错一个字让你找茬,认准这五个词本身,先过一遍含义。
二、流程图:算法的"图纸"
同一个算法有三种描述方式:自然语言(通俗易懂,但容易有歧义)、流程图(直观清晰,考试最爱)、伪代码(介于自然语言和程序之间,简洁)。
流程图符号就五个,形状不能认错:
| 符号形状 | 名称 | 用途 |
|---|---|---|
| 圆角矩形(跑道形) | 起止框 | 算法的开始与结束 |
| 矩形 | 处理框 | 计算、赋值等操作 |
| 菱形 | 判断框 | 条件判断,有两个出口(是/否) |
| 平行四边形 | 输入输出框 | 输入数据、输出结果 |
| 箭头线 | 流程线 | 表示执行顺序 |
菱形最特殊:一个进口、两个出口,这是分支和循环能"拐弯"的原因。
三、三种基本结构
任何复杂的算法都能拆成三种基本结构拼起来:
- 顺序结构:一步接一步,不拐弯。
- 分支结构:遇到判断框,按条件走不同的路(比如:成绩≥60 输出"及格",否则输出"不及格")。
- 循环结构:一段步骤反复执行,直到条件不满足。循环有两型,区别是考试重点:
- 当型循环:先判断、后执行——条件不成立时,循环体可能一次都不执行。
- 直到型循环:先执行、后判断——循环体至少执行一次。
四、读流程图写结果(核心题型,教你跟踪法)
这类题不难,但必须动手。方法叫跟踪表:列出每个变量,看着流程图一步步走,随时把变量的新值记下来。
例题:某流程图如下(文字版):开始 → s=0,i=1 → 判断 i≤5?是 → s=s+i,i=i+1,回到判断;否 → 输出 s → 结束。求输出。
跟踪表(只记关键步):
| 第几轮 | i | 执行后 s |
|---|---|---|
| 1 | 1 | 0+1=1 |
| 2 | 2 | 1+2=3 |
| 3 | 3 | 3+3=6 |
| 4 | 4 | 6+4=10 |
| 5 | 5 | 10+5=15 |
| — | 6 | i>5 退出,输出 15 |
看出门道没有:这就是在算 1+2+3+4+5。考试里的流程图十有八九是求和、求最值、计数这老三样,跟踪表一步步记,绝不会错。切忌心算跳步——跳步是这类题丢分的头号原因。
五、三种算法思想
枚举(穷举):把所有可能逐一列出来验证。比如找 1~100 里的质数,就是逐个试除。特点:笨但可靠,适合范围小的问题。
解析:找出数学公式直接算。比如已知半径求圆面积,不用试,直接 πr²。特点:快,但要有公式可用。
排序与查找(各记一个代表):
- 冒泡排序:相邻两个比一比,大的往后沉。一趟下来最大值到达末尾。例:[5, 3, 4, 1] 冒泡一趟:5 与 3 换 → [3,5,4,1];5 与 4 换 → [3,4,5,1];5 与 1 换 → [3,4,1,5]。
- 顺序查找:从第一个挨个找到尾(你在 Python 课写小管家时用的就是它)。
- 二分查找:每次砍掉一半,效率高得多,但有个硬前提:数据必须已经排好序。例:在 [3,7,12,18,25,31,42] 里找 25:中间是 18,比 25 小 → 看右半;在 [25,31,42] 里中间是 31,比 25 大 → 看左半;剩下 [25],找到,共比较 3 次。
易错点提醒
1. 判断框是菱形、两个出口;输入输出框是平行四边形,别和处理框(矩形)认混。
2. 当型与直到型的区别就一句话:先判断还是先执行——决定循环体最少执行几次(0 次还是 1 次)。
3. 二分查找的前提是有序,无序数据只能顺序查找。
4. 跟踪变量时,赋值是"用新值覆盖旧值",s=s+i 不是方程,别去"解"它。
自测 10 题(先做,再点开对答案)
1. 下列哪一项不是算法的特征( )
A. 有穷性 B. 确定性 C. 无限性 D. 可行性
2. 流程图中表示"判断"的符号是( )
A. 矩形 B. 菱形 C. 平行四边形 D. 圆角矩形
3. 流程图中数据的输入、输出用( )表示
A. 矩形 B. 菱形 C. 平行四边形 D. 圆
4. 按例题的流程图(s=s+i,i 从 1 到 5),若把判断条件改成 i≤3,输出是( )
A. 3 B. 6 C. 10 D. 15
5. 下列不属于算法三种基本结构的是( )
A. 顺序结构 B. 分支结构 C. 循环结构 D. 递归结构
6. "把所有可能情况逐一列举并检验"描述的是( )
A. 解析法 B. 枚举法 C. 二分法 D. 递归法
7. 使用二分查找的前提是数据必须( )
A. 数量足够多 B. 已经排好序 C. 全是整数 D. 没有重复
8. 对 [5, 3, 4, 1] 按升序冒泡一趟后,结果是( )
A. [3, 4, 1, 5] B. [1, 3, 4, 5] C. [3, 5, 4, 1] D. [5, 3, 4, 1]
9. 用自然语言描述算法的主要缺点是( )
A. 太简洁 B. 容易产生歧义 C. 不能描述循环 D. 无法给人看
10. 在一列数中找最大值,通常的算法是( )
A. 逐个比较,始终保留当前见过的最大者 B. 把所有数相加除以个数
C. 只看第一个和最后一个 D. 随机抽取一个
参考答案(点开)
1. C(算法必须在有限步内结束)
2. B
3. C
4. B(1+2+3=6)
5. D
6. B
7. B
8. A
9. B
10. A
下一课预告:Python 程序识读——读程序写结果,把 Python 线学过的东西换成考试题型再过一遍。
学·教在线
小ta