贪心算法解决最优装载问题c语言,贪心算法解决最优装载问题
《贪心算法解决最优装载问题》由会员分享,可在线阅读,更多相关《贪心算法解决最优装载问题(4页珍藏版)》请在人人文库网上搜索。
1、author : Kevin Black/这个是我刚刚做好的作业,我觉得应该上传一些文档到豆丁/老师假如你看到我的作业跟网上的这个文章一样你别以为我是抄的啊/记得看看作者的名字啊!贪心算法之最优装载问题一. 实验目的掌握贪心算法的基本思想(具体阐述)掌握贪心算法的基本要素:贪心选择性质和最优子结构性质二. 实验内容贪心算法基本思想:整体划分成部分,分而治之。每个部分中寻找最优解,然后综合所有部分最优解。这是,可能得到整体的最优解,但往往得到的是近似的最优解。贪心算法基本要素:1. 贪心选择性质所谓贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。这是贪心算法可。
2、行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。2. 最优子结构性质当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。最优装载问题1. 问题描述:有一批集装箱要装上一艘载重量为c的轮船。其中集装箱i的重量为Wi。最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。2. 数学描述:三. 实验程序及运行结果#include#includevoid Swap(int &x,int &y)/交换int t;t=x;x=y;y=t;void sort(int w,int t,int n)/排序,由小到大for(int m=0;m0)lastExcha。
3、ngeIndex=0;for(j=0;jn;coutc;int *t=new intn; /存储物品编号int *w=new intn; /存储每个物品重量for(int i=0;iwi;int *x=new intn; /物品是否装入for(int j=0;jn;j+) /初始化 所有物品均为不装入xj=0;Loading(x,w,c,n,t);cout装入物品编号为:endl;for(int k=0;kn;k+)if(xk=1)couttk+1;/释放数组资源空间delete t;delete w;delete x;return 0;四实验分析证明:1. 最优装在问题具有贪心选择性质:分析。
4、:当载重量为定值c时,Wi越小时,可装载的集装箱数量n越大。问题划分为i个子问题,只要依次选择最小重量集装箱,满足小于等于c。原问题即可由i个子问题的最优解得到整体的最优解。所以,最优装在问题具有贪心选择性质。y = max(x1w1 + x2w2 + + xiwi + + xnwn)具体的做法:首先排序整个集装箱(依照重量从小到大的顺序),然后尽可能多地选出前i个集装箱,要求 y = (x1w1 + x2w2 + + xiwi) = c. 输出所选集装箱编号。任务完成。2. 最优装载问题具有最优子结构性质:分析:由2中的分析可以看出,一个问题的最优解包含其子问题的最优解,所以,最优装载问题具有最优子结构性质。3. 由于最优装载问题的贪心选择性质和最优子结构性质,最优装载问题符合贪心算法。参考文献1 http:/www.xinx.sdnu.edu.cn/sfzx/jpsykc/xlcad/xu04.html#(18。
贪心算法解决最优装载问题c语言,贪心算法解决最优装载问题相关推荐
- c语言数据结构算法设计题,数据结构题集(C语言版)算法设计题答案[].doc
数据结构题集(C语言版)算法设计题答案[].doc 第一章 绪论 1.16 void print_descending(int x,int y,int z)// 按从大到小顺序输出三个数 { scan ...
- c++排序算法ppt_C/C++学习教程:C语言排序算法—插入排序算法
前言:插入排序算法是所有排序方法中最简单的一种算法,其主要的实现思想是将数据按照一定的顺序一个一个的插入到有序的表中,最终得到的序列就是已经排序好的数据. 直接插入排序是插入排序算法中的一种,采用的方 ...
- C语言快速排序算法及三种优化方式
C语言快速排序算法及三种优化方式 C语言快速排序算法及三种优化方式 原理 快速排序复杂度分析 1 时间复杂度 2 空间复杂度 快速排序代码实现 1 普通快速排序 2 快速排序优化1-三数取中优化不必要 ...
- C语言经典算法 21-30
目录 21 一个有序的数组插入一个数 22 将一个数组逆序输出 23 报号 求最后是谁 24 写一个统计字符串长度的函数 25 八进制转换为十进制 26 判断一个素数能被几个 9 整除 27 输入一组 ...
- C语言经典算法 11-20
C语言经典算法 11-20 十一.求最大公约数和最小公倍数 十二.统计字符串数字,字母,符号的各个数量 十三.2+22+222+..... 十四.完数 十五.小球反弹问题 十六.猴子吃桃问题 十七.求 ...
- C语言经典算法 1-10
目录 一.排列组合题 二.区间题 三.判断平方数相关 四.给你一个年月日判断是第几天 五.将3个数由小到大排序 六.九九乘法表 七.兔子繁殖数列 八.判断素数 九.水仙花数 十.因数分解 一.排列组合 ...
- 退火模拟算法c语言程序,C语言模拟退火算法(C language simulated annealing algorithm).doc...
C语言模拟退火算法(C language simulated annealing algorithm) C语言模拟退火算法(C language simulated annealing algorit ...
- 猴子偷桃c语言编程软件,c语言经典算法——猴子偷桃问题
题目:海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份.第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿 ...
- perl语言与算法的关系
Perl语言是一种高级动态编程语言,它是一种通用的脚本语言,常用于Web开发.系统管理.网络编程等领域.Perl语言由Larry Wall于1987年开发,它的设计理念是"简单.实用.灵活. ...
最新文章
- (背)顺序容器的操作-向容器中插入元素详细总结
- 【Apscheduler】不生效也不报错,提示No handlers could be found for logger “apscheduler.executors.default”
- 『数据库』这篇数据库的文章真没人看--数据库完整性
- ASP.Net Core 2.0中的Razor Page不是WebForm
- 牛客题霸 [表达式求值] C++题解/答案
- LeetCode MySQL 1549. The Most Recent Orders for Each Product
- pytorch查缺补漏之CUDA,自动求导
- [原创]c# 加解密通用类
- python 继承与多态
- OpenGL--天空盒
- 厦门大学353卫生综合考研参考书目
- zookeeper storm kafka开机简易启动脚本
- OSChina 周五乱弹 —— 源花?真土鳖,我要开源小仙女!
- 风力循环喷砂房——北京恒辉郎润
- 开源情报分析(OSINT)CTF社工类2万字题详细教程,请不要利用本文章做不道德的事,后果概不负责
- wxpython 右键菜单_使用wxPython打造印象笔记(14)笔记本管理
- html中表格修改标题间距,css表格间距怎么调?
- MySQL 数据库备份和还原数据库 mysqldump、source
- 关于NCT75DMR2G的使用总结(温度传感器)
- 家庭成员介绍html模板,幼儿园介绍家庭成员教案