首页 > 贪心算法之最优装载

贪心算法之最优装载

贪心算法通过一系列的选择来得到问题的解。它所做的每一个选择都是当前状态下局部最好选择。从许多的贪心算法求解的问题可以看到可用贪心算法求解的问题一般具有两个重要的性质:贪心选择性质和最优子结构性质。

1、贪心选择性质

贪心选择性质是 指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。与动态规划算法的不同之处是贪心算法只依赖在当前状态下做出最优选择,然后再去解做出这个选择后产生的相应的子问题。贪心算法依赖于以往做出的选择,但是绝不依赖未来做出的选择。所以贪心算法是自顶向下解决问题的。

2、最优子结构性质

当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。一个问题是否具有最优子结构性质是该问题可用动态规划算法或贪心算法求解的关键特征。

下面是贪算法的最简单的一个实例,最优装载问题:

问题描述:

有一批集装箱要装上一艘载重量为c的货船。其中集装箱i的重量为n[i],问在不受体积限制的情况下,将尽可能多的集装箱装上船?

贪心算法之最优装载算法:

1、选择重量小的先装,所以首先需要排序。

2、不断装载,则是循环,要输出最优装载方案,则是需要进行记录装载

到的位置的。使用loading记录现在的装载量

void Load(int data[],int n,int c)		//最优装载函数
{int pos=0,i=0;int loading=0;InsertSort(data,n);	//排序while(loading"<

 该问题的时间复杂度取决于排序函数的时间复杂度,这里采用的直接插入排序,所以时间复杂度为O(n^2)

 

 

转载于:https://www.cnblogs.com/fistao/archive/2013/04/04/2999794.html

更多相关:

  • 1打开vlc播放器 点击媒体菜单  选择打开网络串流 2输入RTSP播放地址 3点击播放右下角箭头选择串流 4修改为HTTP,点击添加 5设置请求端口和路径 6选择输出格式 完成后即可使用 H5video标签播放  

  • 选择缓冲区和剪切板 不同于Windows,Linux系统里存在两个剪切板:一个叫做选择缓冲区(X11 selection buffer),另一个才是剪切板(clipboard)。 选择缓冲区是实时的,当使用鼠标或键盘选择内容时,内容已经存在于选择缓冲区了,这或许就是选择缓冲区的由来吧。 使用下面的命令查看选择缓冲区的内容:: $ x...

  • 1、按 Ctrl+Shift+P 2、输入install,选择install Package 3、输入vue,选择 vue syntax hightlight    如果上述方法不起作用,可以选择在下面连接中下载文件,手动安装 如何让你的.vue在sublime text 3 中变成彩色?   转载于:https://www...

  • http://www.blogjava.net/wangdetian168/archive/2011/04/12/348651.html   1、Ext.grid.GridPanel 主要配置项: store:表格的数据集 columns:表格列模式的配置数组,可自动创建ColumnModel列模式 autoExpandColum...

  • 部署VMware vSphere 5.5 ################################################################################# ver1.0 2014-09-09 #### 本文内容来自 中国专利信息中心 - 基础系统处 — 张阳## 如有转载,请务必保留...