3
算法与描述
GESP 三级 · 知识点 4

🧭 算法与描述

算法就是把「怎么做一件事」写成一步一步的计划,像做菜的菜谱。想好计划后,可以用人话讲、用图来画、用半人话半代码来写——这就是自然语言、流程图和伪代码。

考纲知识点:枚举法、模拟法
自然语言描述、流程图描述、伪代码描述
📖
考纲 · 知识点详述
摘自《CCF编程能力等级认证 C++&Python 认证标准》C++ 三级
  1. (4)了解算法的概念与描述,熟练运用自然语言、流程图、伪代码方式来描述算法。
  2. (7)理解枚举算法、模拟算法的原理及特点,可以解决实际问题。
📚
先学一学
花 5 分钟读完下面 5 课,再去闯关就不慌啦
1
📜 算法:解决问题的「菜谱」

做饭要看菜谱,拼乐高要看说明书——电脑解决问题也要一步一步的指令,这一串步骤就叫算法。好算法要满足:

🍞 生活小例子:早上起床的算法
① 起床 → ② 洗脸刷牙 → ③ 吃早餐 → ④ 背书包出门。这就是一套「自然语言描述的算法」!如果里面多一句「③ 一直吃早餐,永远不停」,它就失去有穷性了。
💡 口诀:算法 = 步骤要清楚、要走得到头、照着做能成功。
2
🗣️ 三种描述方式:人话、画图、半代码
🧪 同一件事三种写法:判断 60 分及格
· 自然语言:如果分数大于等于 60,就输出“及格”,否则输出“不及格”。
· 伪代码如果 score ≥ 60 则输出“及格” 否则输出“不及格”
· 流程图:从「开始」框出发,走进「判断」菱形,是 → 及格,否 → 不及格,最后回到「结束」框。
💡 口诀:人话好懂、图形好走、伪代码好设计;三种都是给「人」看的。
3
🔍 枚举算法:一个一个试

枚举就是把所有可能都列出来挨个检查,像试密码锁从 000 试到 999,总有一组能打开。

🧪 例子:找 1~30 里能被 6 整除的数
把 1、2、3、…、30 每个数都拿出来问一句「你能不能整除 6?」,能就记下来:6、12、18、24、30。一个不漏、一个不重。
💡 口诀:枚举 = 挨个试;范围要定好,不漏也不重。
⚠️ 枚举的优缺点
优点是简单可靠,答案藏得再深也能找到;缺点是如果可能情况太多(比如几亿种),就会很慢。所以枚举适合「候选答案不多」的问题。
💡 口诀:范围小用枚举,稳又准;范围大要想巧办法。
4
🎮 模拟算法:照着规则演一遍

模拟就是把真实世界的过程,一步一步在电脑里演出来。游戏里怪物的血量、排队报数、日历翻页,都是模拟。

🧪 例子:怪物 30 滴血,每回合被打掉 10 滴
模拟做法:把血量记在变量里,第 1 回合结束变 20,第 2 回合结束变 10,第 3 回合结束变 0——然后宣布怪物被打败。关键是要把初始状态设对(开始是 30),再按规则一步一步更新。
💡 口诀:模拟 = 从头到尾照规则演;开始状态别设错。
🆚 枚举 vs 模拟
· 枚举:把所有候选答案试一遍(重点在「选」)。
· 模拟:把过程一步一步走完(重点在「演」)。
判断小技巧:题目说「把每种可能都试」→ 枚举;题目说「按规则一步步算」→ 模拟。
💡 口诀:枚举找答案,模拟演过程。
5
🧠 把算法写成「能念的步骤」
🧪 伪代码读一读:求 1 加到 5
看得懂就好,不用背:
sum = 0
对 i = 1, 2, 3, 4, 5:
   sum = sum + i
输出 sum
1+2+3+4+5 = 15。这里的 sum = sum + i 意思是「把 i 累加进 sum 里」,像往存钱罐里一个硬币一个硬币地丢。
💡 口诀:sum = sum + i = 往罐子里加硬币;重复 N 次 = 让罐子越装越满。
🧭 设计算法的四步
看懂问题:要算什么、条件是什么。
想思路:用枚举还是模拟,还是别的办法。
写下来:自然语言 / 流程图 / 伪代码。
检查边界:最小、最大的情况会不会出错。
💡 口诀:看问题 → 想思路 → 写步骤 → 查边界。
🎯
闯关小锦囊 · 考点提醒
🎮
学完了?来闯关!
下面 15 个小挑战,点一点就能玩

Demo 原型 · 每个知识点独立页面 · 暂不含真实编译与进度存储。