模块二 · 经典算法思想与问题求解

单元5 贪心算法

围绕“每一步都做当前看起来最优的选择,能否得到整体较优结果”这一核心问题展开,帮助学生理解贪心算法的基本思想、适用条件和典型应用,建立局部最优与整体目标之间的关系认知。

所属模块
模块二:经典算法思想与问题求解
建议学时
2 学时
教学定位
算法思想单元
1

学习目标

知识目标

理解贪心算法“每一步做当前最好选择”的基本思想,认识贪心选择性质和最优子结构等概念,了解其在调度、路径、资源分配等问题中的典型应用。

能力目标

能够分析一个问题是否适合采用贪心思路求解,能够比较贪心方法与其他算法方法在求解过程和结果上的差异。

素养目标

培养学生从局部决策出发分析整体结果的思维能力,形成“快速决策并验证可行性”的算法意识,增强工程场景中的效率观念。

2

教学内容

2.1 贪心算法的基本思想

通过找零问题、活动安排、最短加工时间优先等案例,引导学生理解贪心算法的核心特征:每一步都优先选择当前看来最有利的方案,希望通过一系列局部最优决策逐步逼近整体较优结果。帮助学生建立对“局部最优”与“整体目标”关系的初步认识。

视频讲解说明

本视频建议作为导入内容,重点说明贪心算法“立足当前、快速选择”的核心思想,并帮助学生理解它为什么在许多工程问题中具有较高效率。

当前为占位视频地址,后续可直接替换成你的课程视频链接。

2.2 贪心选择与适用条件

讲解并不是所有问题都适合使用贪心算法。重点引导学生理解:只有当问题满足一定条件时,局部最优选择才可能导向全局较优结果。通过典型正例和反例比较,让学生认识贪心算法既高效又有边界,不能简单套用。

视频讲解说明

本视频建议结合正反两个例子进行讲解,重点说明什么时候贪心方法能成功,什么时候会因为只顾当前而错失更优整体结果。

你也可以将这里替换为超星、B站、腾讯视频或本地服务器的视频链接。

2.3 贪心算法的典型应用

结合区间调度、任务分配、路径选择、资源分配等实际问题,说明贪心算法在工业工程、物流调度、信息处理和管理决策中的广泛应用。让学生理解贪心算法的价值在于思路简洁、实现高效、适合解决某些具有明显局部决策特征的问题。

3

案例一:活动安排中的贪心策略

活动安排示意图

此处可放入区间调度图、时间轴图或活动安排可视化示意图。

活动安排问题是贪心算法的典型案例之一。假设有多个活动需要在同一场地举行,每个活动都有开始时间和结束时间,目标是在不冲突的前提下尽可能安排更多活动。

在这个问题中,常见的贪心策略是优先选择结束时间最早的活动。这样做的直观理由是:越早结束,就越有可能为后续活动留下更多时间空间,从而提高整体安排数量。

这个案例非常适合帮助学生理解贪心算法的优点:不需要穷举所有可能安排,而是用一个清晰的规则快速做出决策,并得到较优结果。同时也能让学生体会到,规则的选择是否合理,直接决定算法能否成功。

课堂讲解提示

① 为什么优先选择结束时间早的活动更合理?

② 如果优先选择持续时间最短的活动,结果一定更好吗?

③ 贪心策略的“当前最好”是如何定义的?

④ 这个问题中局部选择为什么能够影响整体结果?

4

案例二:找零问题中的局部最优选择

找零问题示意图

此处可放入硬币面值图、找零流程图或局部最优选择过程示意图。

找零问题是学生理解贪心思想最直接的案例之一。当需要凑出某个金额时,一种自然想法是每次先选面值最大的硬币或纸币,尽快减少剩余金额。

这种方法在某些货币体系中是有效的,因为每一步拿大面值都能快速逼近目标,并最终得到较少张数的找零方案。但如果面值设计不同,局部最优选择不一定能带来全局最优结果。

通过这个案例,学生可以清楚看到贪心算法的双重特征:一方面决策速度快、实现简单;另一方面它的正确性依赖于问题结构,不能机械照搬。这正是贪心算法教学中最值得强调的地方。

课堂讲解提示

① 为什么人们在找零时常常会先拿大面值?

② 这种“先拿大的”策略为什么有时有效、有时无效?

③ 贪心算法与“最少张数”之间是什么关系?

④ 如何通过反例说明贪心算法并非总能得到最优解?

5

教学重点与难点

教学重点:贪心算法的基本思想、局部最优与整体目标的关系,以及其典型应用场景。

教学难点:帮助学生理解贪心算法并非对所有问题都适用,必须结合问题结构判断其可行性,而不是简单把“当前最好”当作通用策略。

6

教学方式

采用“真实场景导入 + 视频讲解 + 案例分析 + 正反比较”的方式组织教学。

通过找零、活动安排、资源调度等具体情境,引导学生从生活经验进入算法思想,再通过正反案例比较理解贪心算法的边界与条件。

7

课堂活动设计

活动一:模拟活动安排

给出若干活动的开始时间和结束时间,让学生尝试设计不同选择规则,并比较哪种规则更容易安排更多活动,从而理解贪心策略设计的重要性。

活动二:比较找零方案

让学生在不同面值体系下尝试用贪心方法找零,并与最优方案比较,观察贪心算法在哪些情况下有效、在哪些情况下会失败。

8

课后任务

任务1:列举两个生活中的贪心决策场景,并说明其中“当前最好”的选择规则是什么。

任务2:用自己的语言解释为什么贪心算法速度快,但不一定总能得到最优解。

任务3:思考物流调度、任务分配、资源选择等问题中,贪心算法可能发挥什么作用。