目录

一、概念

1.1 贪心算法的基本要素

1.1.1 贪心选择性质

1.1.2 最优子结构性质

1.2 贪心算法与动态规划算法的差异

二、举例

2.1 活动安排问题

2.2 最优装载问题

2.3 哈夫曼编码


一、概念


1.1 贪心算法的基本要素

  1. 贪心选择性质
  2. 最优子结构性质

1.1.1 贪心选择性质

1.1.2 最优子结构性质


1.2 贪心算法与动态规划算法的差异

贪心算法:

1.每一步的最优解一定包含上一步的最优解,上一步之前的最优解则不作保留;

2.如果把所有的子问题看成一棵树的话,贪心从根出发,每次向下遍历最优子树即可(通常这个“最优”都是基于当前情况下显而易见的“最优”);这样的话,就不需要知道一个节点的所有子树情况,于是构不成一棵完整的树;

3.根据以上两条可以知道,贪心不能保证求得的最后解是最佳的,一般复杂度低;而动态规划本质是穷举法,可以保证结果是最佳的,复杂度高。

动态规划:

1.全局最优解中一定包含某个局部最优解,但不一定包含前一个局部最优解,因此需要记录之前的所有的局部最优解;

2.动态规划则自底向上,从叶子向根,构造子问题的解,对每一个子树的根,求出下面每一个叶子的值,最后得到一棵完整的树,并且最终选择其中的最优值作为自身的值,得到答案;

3.针对0-1背包问题:这个问题应比较选择该物品和不选择该物品所导致的最终方案,然后再作出最好选择,由此就导出许多互相重叠的子问题,所以用动态规划。



二、举例

2.1 活动安排问题


2.2 最优装载问题


2.3 哈夫曼编码


算法与程序设计的复习嘻嘻嘻蟹蟹٩('ω')و 

算法与程序设计(四):贪心算法相关推荐

  1. (十四)算法设计思想之“贪心算法”

    算法设计思想之"贪心算法" 贪心算法是什么 LeetCode:455.分饼干 LeetCode:122.买卖股票的最佳时机II 思考题 贪心算法是什么 贪心算法是算法设计中的一种方 ...

  2. 算法系列(二):贪心算法--Huffman编码

    算法系列(二):贪心算法--Huffman编码 一.分析 问题描述: 哈夫曼编码是广泛地用于数据文件压缩的十分有效的编码方法.其压缩率通常在20%-90%之间.哈夫曼编码算法使用字符在文件中出现的频率 ...

  3. _32LeetCode代码随想录算法训练营第三十二天-贪心算法 | 738.单调递增的数字 、714.买卖股票的最佳时机含手续费、968.监控二叉树

    _32LeetCode代码随想录算法训练营第三十二天-贪心算法 | 738.单调递增的数字 .714.买卖股票的最佳时机含手续费.968.监控二叉树 题目列表 738.单调递增的数字 714.买卖股票 ...

  4. java贪心算法 区间调度_贪心算法-区间调度问题解之证明(示例代码)

    一.贪心算法 定义:一个算法是贪心算法,如果它是通过一些小的步骤来一个求解,并且在每一步根据局部情况选择一个决定,使得某些主要的指标得到优化. 二.区间调度问题 1. 问题:我们有一组需求{1,2,3 ...

  5. _28LeetCode代码随想录算法训练营第二十八天-贪心算法 | 122.买卖股票的最佳时机II 、55.跳跃游戏、45.跳跃游戏II

    _28LeetCode代码随想录算法训练营第二十八天-贪心算法 | 122.买卖股票的最佳时机II .55.跳跃游戏.45.跳跃游戏II 题目列表 122.买卖股票的最佳时机II 55.跳跃游戏 45 ...

  6. 算法——人的天性贪心算法

    相应的练习代码:https://github.com/liuxuan320/Algorithm_Exercises 0. 写在前面 说起贪心算法,可能是我们最为熟悉的算法了.正如我标题所说的,贪心算法 ...

  7. 《趣学算法》Chapter 2 贪心算法

    Chapter 2 贪心算法 2.1 人之初,性本贪 2.2 加勒比海盗船--最优装载问题 2.3 阿里巴巴与四十大盗--背包问题 2.4 高级钟点秘书--会议安排 2.5 一场说走就走的旅行--最短 ...

  8. c语言单元最短路径贪心算法,单源最短路径 贪心算法

    <单源最短路径 贪心算法>由会员分享,可在线阅读,更多相关<单源最短路径 贪心算法(3页珍藏版)>请在人人文库网上搜索. 1.实验三 单源最短路径一.实验目的及要求掌握贪心算法 ...

  9. c语言贪心算法ppt,c语言(贪心算法).ppt

    c语言(贪心算法).ppt ACM程序设计,杭州电子科技大学 刘春英 ,2018/12/23,2,最近几天,,你 了吗,AC,2018/12/23,3,每周一星(9),qfwr,2018/12/23, ...

最新文章

  1. freebsd command
  2. C++STL中的unique函数解析
  3. [ubuntu]dlna平台搭建(在家里,寝室搭建自己的影音平台)
  4. linux搜狗输入法配置,liunx----配置搜狗输入法
  5. HugeGraph图数据库获Apache TinkerPop官方认证
  6. 护肤产生共鸣_通过以人为本的设计编织共鸣的20个指针
  7. 管道实现父子进程的信息传递(二)【标准流和其文件描述符、fwrite函数、perror函数】
  8. 编译C/C++为dll供Python调用
  9. 视频 java 我行我素管理系统 随堂视频
  10. sbt创建web项目
  11. 【干货】如何打造高质量的NLP数据集
  12. php array函数 strpos strstr查找一个字符串是否在另外一个字符串中
  13. 【Java与智能设备】 CH05_2 Intent启动内置程序
  14. sql基础语法(增、删、改、查)
  15. 2020年中国天线行业发展现状及细分市场结构分析[图]
  16. Pymoo:优化算法收敛性的实例分析
  17. 天耀18期 -09.数组-排序【作业】.doc
  18. Aqara首次发布会三大预测 全屋智能生活体验再次升级
  19. mac安装svn的两种方式(使用brew安装svn 和 可视化工具SnailsvnLite)
  20. IEEE-754标准

热门文章

  1. mysql内存机制_浅析Oracle 的体系架构及内存分配机制
  2. sql 聚合函数对 null 的处理
  3. IntentService总结
  4. Go 广度优先遍历 多叉树
  5. Mac osx安装Django
  6. php pos机刷卡,一清POS机不能刷卡的这些原因你知道几个?
  7. WebMagic使用--爬取cnki会议
  8. 在下列HTML中那也可以产生超链接,html+css+js完整版面试题(选择,简答,程序题)
  9. SQL Server安装登录过程中配置管理器无法创建管理单元的解决方法
  10. 华为5G模块MH5000_AT命令手册