算法分析与设计

王新伟 华东师范大学 副教授

目录

  • 1 第一章 绪论
    • 1.1 本章导学
    • 1.2 第一节 算法概述
    • 1.3 本章试题
  • 2 第二章 递归与分治策略
    • 2.1 本章导学
    • 2.2 第一节 算法总体思想
    • 2.3 第二节 递归
    • 2.4 第三节 防治法
    • 2.5 本章试题
  • 3 第三章 动态规划
    • 3.1 本章导学
    • 3.2 第一节 动态规划算法的概念
    • 3.3 第二节 动态规划算法的基本步骤
    • 3.4 第三节 动态规划算法的基本要素
    • 3.5 第四节 动态规划算法设计策略
    • 3.6 本章试题
  • 4 第四章 贪心算法
    • 4.1 本章导学
    • 4.2 第一节 活动安排问题
    • 4.3 第二节 贪心算法的基本要素
    • 4.4 第三节 最优装载
    • 4.5 第四节 单源最短路径
    • 4.6 第五节 多机调度问题
    • 4.7 本章试题
  • 5 第五章 回溯法
    • 5.1 本章导学
    • 5.2 第一节 回溯法的基本思想
    • 5.3 第二节 回溯法解题的算法框架
    • 5.4 第三节 回溯法的设计策略
    • 5.5 本章试题
  • 6 第六章 分支限界法
    • 6.1 本章导学
    • 6.2 第一节 分支限界法的基本思想
    • 6.3 第二节 动态规划算法的基本步骤
    • 6.4 第三节 0-1背包问题
    • 6.5 第四节 旅行售货员问题
    • 6.6 本章试题
本章导学

贪心算法不是从整体最优的角度选择解决问题的方向,而是做出在当前看来是最好的选择。贪心选择是一种局部最优的选择。首先,我们当然希望贪心算法得到的最终结果是整体最优的。 那么,需要分析什么样的问题,采用贪心算法可以得到整体最优解。其次,对于一些复杂而又困难的问题,尽管贪心算法不能得到整体最优解,是否可以得到近似最优解?本章围绕这些问题通过范例展开讨论。 

1、 理解贪心算法的概念。

2、 掌握贪心算法的基本要素:1)最优子结构性质;2)贪心选择性质。

3、 通过范例学习贪心算法的设计方法。应用范例包括: 1)活动安排问题;2)最优装载问题;3)单源最短路径;4)多机调度问题。 

重点:要正确把握贪心算法的特征,对于具有最优子结构和贪心选择性质的问题,运用贪心算法求解的效率是良好的。针对具体问题,学会实现贪心算法。

难点:分析问题是否具有最优子结构和贪心选择性质,针对具有这两个性质的问题,采用贪心策略设计有效的算法。

理解贪心算法和动态规划算法的共同点和差异,把握适用贪心算法求解的问题特征,针对具体问题,提出贪心选择策略,设计有效的贪心算法。

最优子结构性质,贪心选择性质,贪心算法。