快速分清分治法,动态规划法,贪心算法,回溯法,软考中级软件设计师

目录

[一、分治算法(Divide and Conquer)](#一、分治算法(Divide and Conquer))

比喻:分快递包裹

软考关键词定位:

[二、动态规划(Dynamic Programming)](#二、动态规划(Dynamic Programming))

比喻:爬楼梯记账

软考关键词定位:

[三、贪心算法(Greedy Algorithm)](#三、贪心算法(Greedy Algorithm))

比喻:选最大的苹果

软考关键词定位:

四、回溯算法(Backtracking)

比喻:走迷宫标记路径

软考关键词定位:

软考快速对比表

实战例题:一句话判断算法类型


一、分治算法(Divide and Conquer)

比喻:分快递包裹

  • 把一堆快递分成几小堆,每小堆分别打包,最后合并成大包裹。(核心:分解问题→解决子问题→合并结果,类似将班级大扫除拆分成擦窗、扫地等小组任务,最后汇总成果。)

软考关键词定位:

  • 分解"子问题""递归求解""合并结果"。
  • 例题:"将原问题分解为多个规模较小的相同子问题,递归解决子问题后合并结果。"→分治算法(关键词:分解子问题、合并)。

典型场景: 归并排序、快速排序、汉诺塔问题。

二、动态规划(Dynamic Programming)

比喻:爬楼梯记账

  • 爬楼梯时,记录到第n-1层和第n-2层的最短步数,算第n层时直接查表,避免重复计算。(核心:存储中间结果,避免重复计算,类似记账时记录每日支出,月底直接汇总统计。)

软考关键词定位:

  • 最优子结构"重叠子问题""存储中间结果""填表/备忘录"。
  • 例题:"为避免重复计算,将子问题的解存储在表中,通过查表构造原问题的解。"→动态规划(关键词:存储中间结果、最优子结构)。

典型场景斐波那契数列、背包问题、最长公共子序列。

三、贪心算法(Greedy Algorithm)

比喻:选最大的苹果

  • 每次只选眼前最大的苹果,不考虑后面是否有更大的。(核心:每一步选当前最优解,不考虑全局,类似超市购物时优先拿眼前折扣最大的商品,不管后面是否有更划算的。)

软考关键词定位:

  • 局部最优"当前最优解""不回溯""贪心选择性质"。
  • 例题:"在每一步选择中都采取当前看来最优的策略,以求得全局最优解。"→贪心算法(关键词:局部最优、当前最优)。

典型场景: 活动选择问题、最小生成树(Prim/Kruskal)、零钱兑换(部分情况)。

四、回溯算法(Backtracking)

比喻:走迷宫标记路径

  • 走迷宫时,每走一步标记路径,遇到死胡同就退回上一个路口,尝试其他方向。(核心:尝试所有可能路径,失败则回溯,类似考试做选择题时,先选一个答案,发现错误后擦掉重选。)

软考关键词定位:

  • 尝试所有可能"回溯""剪枝""状态空间树"。
  • 例题:"通过深度优先搜索遍历所有可能解,遇到不满足条件的情况时回退,继续搜索其他分支。"→回溯算法(关键词:回溯、尝试所有可能、剪枝)。

典型场景: 八皇后问题、全排列、子集和问题。

软考快速对比表

|--------------|---------------|-----------------|-----------------|
| 算法类型 | 核心特征词 | 生活比喻关键点 | 避免混淆的坑 |
| 分治 | 分解、子问题、合并 | 分快递→拆包+合并 | 与动态规划区别:不共享子问题 |
| 动态规划 | 存储中间结果、最优子结构 | 爬楼梯记账→避免重复计算 | 需子问题重叠,贪心无存储 |
| 贪心 | 局部最优、当前选择 | 选最大苹果→不管未来 | 不一定全局最优,动态规划是全局 |
| 回溯 | 回溯、尝试所有路径 | 走迷宫标记→失败就回头 | 与递归区别:带剪枝的递归搜索 |

实战例题:一句话判断算法类型

"将数组分成左右两半,分别排序后合并成有序数组。"

→分治算法(关键词:分成两半、合并结果)。

"计算斐波那契数列时,用数组存储已计算的项,避免重复计算。"

→动态规划(关键词:存储已计算项、避免重复)。

"求解最短路径时,每一步选择当前相邻节点中距离最小的,不考虑后续路径。"

→贪心算法(关键词:当前相邻最小、不考虑后续)。

"在棋盘上放置8个皇后,每放一个检查是否冲突,冲突则撤回重放。"

→回溯算法(关键词:撤回重放、检查冲突)。

相关推荐
机器学习之心5 小时前
多目标鲸鱼优化算法(NSWOA),含46种测试函数和9个评价指标,MATLAB实现
算法·matlab·多目标鲸鱼优化算法·46种测试函数·9个评价指标
max5006006 小时前
基于Meta Llama的二语习得学习者行为预测计算模型
人工智能·算法·机器学习·分类·数据挖掘·llama
王哥儿聊AI7 小时前
Lynx:新一代个性化视频生成模型,单图即可生成视频,重新定义身份一致性与视觉质量
人工智能·算法·安全·机器学习·音视频·软件工程
张较瘦_8 小时前
[论文阅读] 人工智能 + 软件工程 | 从“人工扒日志”到“AI自动诊断”:LogCoT框架的3大核心创新
论文阅读·人工智能·软件工程
张较瘦_8 小时前
[论文阅读] 人工智能 + 软件工程 | 35篇文献拆解!LLM如何重塑软件配置的生成、验证与运维
论文阅读·人工智能·软件工程
手握风云-8 小时前
优选算法的寻踪契合:字符串专题
算法
闭着眼睛学算法9 小时前
【华为OD机考正在更新】2025年双机位A卷真题【完全原创题解 | 详细考点分类 | 不断更新题目 | 六种主流语言Py+Java+Cpp+C+Js+Go】
java·c语言·javascript·c++·python·算法·华为od
IT古董9 小时前
【第五章:计算机视觉-项目实战之目标检测实战】2.目标检测实战:中国交通标志检测-(2)中国交通标志检测数据格式转化与读取
算法·目标检测·计算机视觉
郝学胜-神的一滴9 小时前
谨慎地迭代函数所收到的参数 (Effective Python 第31条)
开发语言·python·程序人生·软件工程
MobotStone9 小时前
LLM 采样入门到进阶:理解与实践 Top-K、Top-P、温度控制
算法