贪心算法的本质:
  • 它是解决问题的策略上“目光短浅”,只根据当前已有信息就做出选择,而且一旦做出选择,不管将来有什么结果,这个结果都不会发生改变。换言之,贪心算法并不是从整体最优考虑,而是在某种意义上的局部最优。注意有时得到的结果并不是最优解,而是最优解的近似解。
如何使用贪心算法呢?
(1)贪心策略
  • 首先要确定贪心策略,选择当前看上去最好的一个方案。例如,挑选苹果,如果你认为个大的是最好的,那你每次都从苹果堆中拿一个最大的,作为局部最优解。贪心策略就是选择当前最大的苹果;再例如另外一种贪心策略是选择当前最红的苹果。因此根据求解目标不同,贪心策略也会不同。
(2)局部最优解
  • 根据贪心策略,一步一步得到局部最优解。例如,第一次选一个最大的苹果放起来,记为a1,第二次再从剩下的苹果中选择一个最大的苹果放起来,记为a2,以此类推下去。
(3)全局最优解
  • 把所有的局部最优解合成为原来问题的一个最优解(a1,a2,…an)
贪心算法的应用
  • 最常见的冒泡排序就是使用了贪心算法,它的贪心策略就是每一次从剩下的序列中选出一个最大的数,把这些选出来的数按大小排序。

1、最优装载问题——加勒比海盗船

<

贪心算法 | 最优装载问题——加勒比海盗船相关推荐

  1. 算法设计与分析【第七周】贪心算法 最优装载问题

    最优装载问题 有一批集装箱要装上一艘载重量为c的轮船.其中,集装箱i的重量为Wi. 最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船. 另外,单源最短路径(Dijistra算 ...

  2. 贪心算法两船装载问题Java_贪心算法-最优装载问题

    贪心选择算法为算法分析中一种常用算法,通过一系列的选择来得到一个问题的解.它所作的每一个选择都是当前状态下某种意义的最好选择,即贪心选择.希望通过每次所作的贪心选择导致最终结果是问题的一个最优解.这种 ...

  3. 最优装载c语言贪心算法,最优装载(贪心算法)

    算法设计例题:最优装载(贪心) memory limit: 32768KB    time limit: 1000MS accept: 24    submit: 68 Description 有一批 ...

  4. 算法设计与分析——贪心算法——最优装载问题

    有一批集装箱要装上一艘载重量为c的轮船.其中集装箱i的重量为Wi.最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船. #include<iostream> #in ...

  5. 【趣学算法】Day2 贪心算法——最优装载问题

    14天阅读挑战赛 努力是为了不平庸~ 算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法! ❤️一名热爱Java的大一学生,希望与各位大佬共同学习进步❤️

  6. 【恋上数据结构】贪心(最优装载、零钱兑换、0-1背包)、分治(最大连续子序列和、大数乘法)

    贪心.分治 贪心(Greedy) 问题1:最优装载(加勒比海盗) 问题2:零钱兑换 零钱兑换的另一个例子 贪心注意点 问题3:0-1背包 0-1 背包 - 实例 一些习题 分治(Divide And ...

  7. 贪心法——最优装载问题

    贪心法--最优装载问题 最优装载问题.给出nn个物体,第ii个物体重量为wiw_i.选择尽量多的物体,使得总重量不超过C<script id="MathJax-Element-230& ...

  8. 【贪心算法】最优装载问题C++语言

    文章目录 问题描述 问题分析 算法步骤 举例 代码 问题描述 有一批集装箱要装上一艘重量为c的轮船.已知集装箱i(1<=i<=n)的重量为Wi,最优装载问题要求在装载体积不受限制的情况下, ...

  9. java贪心,java实现贪心算法

    并证明了贪心算法解决此问题的有效性,且进行了实例验证,并进 行了复杂度分析,此算法是解决资源组合规划问题较好的方法. 关键词:贪心算法;java 程序;复杂度分析;...... 数据结构与算法 实验名 ...

最新文章

  1. CodeIgniter类库
  2. UEBA 学术界研究现状——用户行为异常检测思路:序列挖掘prefixspan,HMM,LSTM/CNN,SVM异常检测,聚类CURE算法...
  3. 面试总结-13年的最后一天,在面试与被虐中度过
  4. hdu 1042 N! 高精度运算
  5. 你相亲成功的几率有多高?机器学习硬核预测
  6. JavaScript 第二课 JavaScript语法
  7. 准备写个Spring Boot教程
  8. 小米首部5G手机正式发布 海外营收将很快超过国内
  9. SQL SERCER 控制 SERVERICE BROKER 服务
  10. mysql xa 使用_MySQL如何实现 XA 规范
  11. 如何对物联网数据进行大数据分析
  12. OpenSource.com 评出 2014 年十佳开源软件
  13. c语言临时变量交换数值,不用临时变量交换两个数的值(C实现)
  14. 原生JS与其他JS 区别
  15. lycos搜索引擎_常用的搜索引擎都有哪些特点?
  16. 【信号与系统】信号频谱和测量之汉明窗
  17. Libevent 源码文件结构分析
  18. openssl 1.0.2k-fips 升级到 openssl-3.0.3
  19. 关于Oracle 级联操作
  20. html知识点复习整理

热门文章

  1. SQL Server 事务日志已满,3种解决方案
  2. java基础数据类型大小
  3. oracle 快照过旧:回退段号,ORA-01555: 快照过旧: 回退段号 39 (名称为 _SYSSMU39_3029844184$) 过小...
  4. Android 11.0 ActivityManagerService的启动流程
  5. ios友盟错误_iOS - 友盟错误分析
  6. c语言组建怎样变成编译,c语言编译【处理流程】
  7. 19.顺时针打印矩阵
  8. 【职场】关于公司各职位的英文缩写!
  9. 白日梦想家(The Secret Life of Walter Mitty)观后
  10. Echarts 绘制单独省份地图