🧭 算法与描述
算法就是把「怎么做一件事」写成一步一步的计划,像做菜的菜谱。想好计划后,可以用人话讲、用图来画、用半人话半代码来写——这就是自然语言、流程图和伪代码。
考纲知识点:枚举法、模拟法
自然语言描述、流程图描述、伪代码描述
自然语言描述、流程图描述、伪代码描述
📖
考纲 · 知识点详述
摘自《CCF编程能力等级认证 C++&Python 认证标准》C++ 三级
- (4)了解算法的概念与描述,熟练运用自然语言、流程图、伪代码方式来描述算法。
- (7)理解枚举算法、模拟算法的原理及特点,可以解决实际问题。
📚
先学一学
花 5 分钟读完下面 5 课,再去闯关就不慌啦
1
📜 算法:解决问题的「菜谱」
做饭要看菜谱,拼乐高要看说明书——电脑解决问题也要一步一步的指令,这一串步骤就叫算法。好算法要满足:
- ⏱️有穷性:步骤要能停下来,不能永远绕圈。
- 📌确定性:每一步都清清楚楚,不模棱两可。
- ✅能执行:照着做一定能完成。
🍞 生活小例子:早上起床的算法
① 起床 → ② 洗脸刷牙 → ③ 吃早餐 → ④ 背书包出门。这就是一套「自然语言描述的算法」!如果里面多一句「③ 一直吃早餐,永远不停」,它就失去有穷性了。
💡 口诀:算法 = 步骤要清楚、要走得到头、照着做能成功。
2
🗣️ 三种描述方式:人话、画图、半代码
- 💬自然语言描述:用日常说的话写步骤。好处是好懂,坏处是长句子可能说不清。
- 📊流程图描述:用箭头和图形画出来,一眼看清走向。圆角框 = 开始/结束,矩形 = 处理,菱形 = 判断,平行四边形 = 输入/输出。
- 📝伪代码描述:像程序但不是真程序,用汉字 + 简单符号写「如果…否则…」「重复…次」,给人设计看,不用能直接运行。
🧪 同一件事三种写法:判断 60 分及格
· 自然语言:如果分数大于等于 60,就输出“及格”,否则输出“不及格”。
· 伪代码:如果 score ≥ 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
对 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 次 = 让罐子越装越满。
🧭 设计算法的四步
① 看懂问题:要算什么、条件是什么。
② 想思路:用枚举还是模拟,还是别的办法。
③ 写下来:自然语言 / 流程图 / 伪代码。
④ 检查边界:最小、最大的情况会不会出错。
② 想思路:用枚举还是模拟,还是别的办法。
③ 写下来:自然语言 / 流程图 / 伪代码。
④ 检查边界:最小、最大的情况会不会出错。
💡 口诀:看问题 → 想思路 → 写步骤 → 查边界。
🎯
闯关小锦囊 · 考点提醒
- 算法要有有穷性(能结束)、确定性(每步清楚)、能照着执行。
- 三种描述:自然语言(人话)、流程图(圆角框开始结束 / 矩形处理 / 菱形判断 / 平行四边形输入输出)、伪代码(像程序但不用能运行)。
- 枚举:把所有可能挨个试,不漏不重,适合范围小的查找。
- 模拟:照真实规则一步步演,初始状态要设对。
- 伪代码「sum = sum + i」表示累加;1 加到 5 = 15。
🎮
学完了?来闯关!
下面 15 个小挑战,点一点就能玩
Demo 原型 · 每个知识点独立页面 · 暂不含真实编译与进度存储。