算法与描述实战

算法描述相关定义

核心定义:算法是指一个被定义好的、计算机可实施的有限步骤或次序,用于解决问题

五个基本特征

特征含义真题角度
输入项算法有0个或多个输入判断题:算法必须有输入?❌(可以有0个输入)
输出项算法有1个或多个输出判断题:算法必须有输出?✅
确定性每一步有确定定义,无二义性选择题:下列哪项不属于算法的特征?
有穷性必须在有限步后终止判断题:算法可以无限循环?❌
可行性每一步都能精确执行

三个描述方法

描述方式特点优缺点真题角度
自然语言用日常语言描述步骤✅通俗易懂
❌易产生歧义
判断题:自然语言描述算法最不容易产生歧义?❌
流程图用图形符号表示流程✅清晰直观
❌绘制繁琐
根据流程图写程序(代码填空)
伪代码介于自然语言和编程语言之间✅结构清晰
✅无严格语法限制
将伪代码转换为C++代码

枚举算法

定义:枚举算法是从可能的解集合中一一列举各元素,用题目给定的检验条件判定哪些是有效解

本质:利用计算机”算得快”的特点,尝试所有可能性

判断标准:第一时间分析数据规模

数据规模可行性
n104✅ 枚举完全可行
n105⚠️ 需谨慎(O(n2)不可行)
n106及以上❌ 危险,一般不适合直接枚举

模拟算法

定义:按照题目描述的规则,一步步用代码还原过程,直到得到最终结果

核心思想:题目怎么说,代码就怎么写,忠实还原规则

考察能力

  • 题意理解是否准确
  • 基本语法熟练度(变量、循环、条件判断)
  • 边界条件处理是否细心

出题类型

  • 过程模拟:小杨储蓄
  • 规则模拟:数组清零
  • 递推模拟:分糖果