贪心算法 | 最优装载问题——加勒比海盗船
贪心算法的本质:
- 它是解决问题的策略上“目光短浅”,只根据当前已有信息就做出选择,而且一旦做出选择,不管将来有什么结果,这个结果都不会发生改变。换言之,贪心算法并不是从整体最优考虑,而是在某种意义上的局部最优。注意有时得到的结果并不是最优解,而是最优解的近似解。
如何使用贪心算法呢?
(1)贪心策略
- 首先要确定贪心策略,选择当前看上去最好的一个方案。例如,挑选苹果,如果你认为个大的是最好的,那你每次都从苹果堆中拿一个最大的,作为局部最优解。贪心策略就是选择当前最大的苹果;再例如另外一种贪心策略是选择当前最红的苹果。因此根据求解目标不同,贪心策略也会不同。
(2)局部最优解
- 根据贪心策略,一步一步得到局部最优解。例如,第一次选一个最大的苹果放起来,记为a1,第二次再从剩下的苹果中选择一个最大的苹果放起来,记为a2,以此类推下去。
(3)全局最优解
- 把所有的局部最优解合成为原来问题的一个最优解(a1,a2,…an)
贪心算法的应用
- 最常见的冒泡排序就是使用了贪心算法,它的贪心策略就是每一次从剩下的序列中选出一个最大的数,把这些选出来的数按大小排序。
1、最优装载问题——加勒比海盗船
<
贪心算法 | 最优装载问题——加勒比海盗船相关推荐
- 算法设计与分析【第七周】贪心算法 最优装载问题
最优装载问题 有一批集装箱要装上一艘载重量为c的轮船.其中,集装箱i的重量为Wi. 最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船. 另外,单源最短路径(Dijistra算 ...
- 贪心算法两船装载问题Java_贪心算法-最优装载问题
贪心选择算法为算法分析中一种常用算法,通过一系列的选择来得到一个问题的解.它所作的每一个选择都是当前状态下某种意义的最好选择,即贪心选择.希望通过每次所作的贪心选择导致最终结果是问题的一个最优解.这种 ...
- 最优装载c语言贪心算法,最优装载(贪心算法)
算法设计例题:最优装载(贪心) memory limit: 32768KB time limit: 1000MS accept: 24 submit: 68 Description 有一批 ...
- 算法设计与分析——贪心算法——最优装载问题
有一批集装箱要装上一艘载重量为c的轮船.其中集装箱i的重量为Wi.最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船. #include<iostream> #in ...
- 【趣学算法】Day2 贪心算法——最优装载问题
14天阅读挑战赛 努力是为了不平庸~ 算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法! ❤️一名热爱Java的大一学生,希望与各位大佬共同学习进步❤️
- 【恋上数据结构】贪心(最优装载、零钱兑换、0-1背包)、分治(最大连续子序列和、大数乘法)
贪心.分治 贪心(Greedy) 问题1:最优装载(加勒比海盗) 问题2:零钱兑换 零钱兑换的另一个例子 贪心注意点 问题3:0-1背包 0-1 背包 - 实例 一些习题 分治(Divide And ...
- 贪心法——最优装载问题
贪心法--最优装载问题 最优装载问题.给出nn个物体,第ii个物体重量为wiw_i.选择尽量多的物体,使得总重量不超过C<script id="MathJax-Element-230& ...
- 【贪心算法】最优装载问题C++语言
文章目录 问题描述 问题分析 算法步骤 举例 代码 问题描述 有一批集装箱要装上一艘重量为c的轮船.已知集装箱i(1<=i<=n)的重量为Wi,最优装载问题要求在装载体积不受限制的情况下, ...
- java贪心,java实现贪心算法
并证明了贪心算法解决此问题的有效性,且进行了实例验证,并进 行了复杂度分析,此算法是解决资源组合规划问题较好的方法. 关键词:贪心算法;java 程序;复杂度分析;...... 数据结构与算法 实验名 ...
最新文章
- CodeIgniter类库
- UEBA 学术界研究现状——用户行为异常检测思路:序列挖掘prefixspan,HMM,LSTM/CNN,SVM异常检测,聚类CURE算法...
- 面试总结-13年的最后一天,在面试与被虐中度过
- hdu 1042 N! 高精度运算
- 你相亲成功的几率有多高?机器学习硬核预测
- JavaScript 第二课 JavaScript语法
- 准备写个Spring Boot教程
- 小米首部5G手机正式发布 海外营收将很快超过国内
- SQL SERCER 控制 SERVERICE BROKER 服务
- mysql xa 使用_MySQL如何实现 XA 规范
- 如何对物联网数据进行大数据分析
- OpenSource.com 评出 2014 年十佳开源软件
- c语言临时变量交换数值,不用临时变量交换两个数的值(C实现)
- 原生JS与其他JS 区别
- lycos搜索引擎_常用的搜索引擎都有哪些特点?
- 【信号与系统】信号频谱和测量之汉明窗
- Libevent 源码文件结构分析
- openssl 1.0.2k-fips 升级到 openssl-3.0.3
- 关于Oracle 级联操作
- html知识点复习整理
热门文章
- SQL Server 事务日志已满,3种解决方案
- java基础数据类型大小
- oracle 快照过旧:回退段号,ORA-01555: 快照过旧: 回退段号 39 (名称为 _SYSSMU39_3029844184$) 过小...
- Android 11.0 ActivityManagerService的启动流程
- ios友盟错误_iOS - 友盟错误分析
- c语言组建怎样变成编译,c语言编译【处理流程】
- 19.顺时针打印矩阵
- 【职场】关于公司各职位的英文缩写!
- 白日梦想家(The Secret Life of Walter Mitty)观后
- Echarts 绘制单独省份地图