算法描述相关定义
核心定义:算法是指一个被定义好的、计算机可实施的有限步骤或次序,用于解决问题。
五个基本特征:
| 特征 | 含义 | 真题角度 |
|---|---|---|
| 输入项 | 算法有0个或多个输入 | 判断题:算法必须有输入?❌(可以有0个输入) |
| 输出项 | 算法有1个或多个输出 | 判断题:算法必须有输出?✅ |
| 确定性 | 每一步有确定定义,无二义性 | 选择题:下列哪项不属于算法的特征? |
| 有穷性 | 必须在有限步后终止 | 判断题:算法可以无限循环?❌ |
| 可行性 | 每一步都能精确执行 | — |
三个描述方法:
| 描述方式 | 特点 | 优缺点 | 真题角度 |
|---|---|---|---|
| 自然语言 | 用日常语言描述步骤 | ✅通俗易懂 ❌易产生歧义 | 判断题:自然语言描述算法最不容易产生歧义?❌ |
| 流程图 | 用图形符号表示流程 | ✅清晰直观 ❌绘制繁琐 | 根据流程图写程序(代码填空) |
| 伪代码 | 介于自然语言和编程语言之间 | ✅结构清晰 ✅无严格语法限制 | 将伪代码转换为C++代码 |
枚举算法
定义:枚举算法是从可能的解集合中一一列举各元素,用题目给定的检验条件判定哪些是有效解。
| 数据规模 | 可行性 |
|---|---|
| ✅ 枚举完全可行 | |
| ⚠️ 需谨慎(不可行) | |
| 及以上 | ❌ 危险,一般不适合直接枚举 |
模拟算法
定义:按照题目描述的规则,一步步用代码还原过程,直到得到最终结果。
考察能力:
- 题意理解是否准确
- 基本语法熟练度(变量、循环、条件判断)
- 边界条件处理是否细心
出题类型:
- 过程模拟:小杨储蓄
- 规则模拟:数组清零
- 递推模拟:分糖果