- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
贪心方法:总是对当前的问题作最好的选择,也就是局部寻优。最后得到整体最优。
应用:1:该问题可以通过“局部寻优”逐步过渡到“整体最优”。贪心选择性质与“动态规划”的主要差别。
2:最优子结构性质:某个问题的整体最优解包含了“子”问题的最优解。
代码如下:
#include iostream.h
struct goodinfo{?float p;?//物品效益?float w;?//物品重量?float X;?//物品该放的数量?int flag;?//物品编号};//物品信息结构体
void Insertionsort(goodinfo goods[],int n){?int j,i;?for(j=2;j=n;j++)?{??goods[0]=goods[j];???? i=j-1;??
??while (goods[0].pgoods[i].p)??{???goods[i+1]=goods[i];???i--;??}??goods[i+1]=goods[0];?}
}//按物品效益,重量比值做升序排列
void bag(goodinfo goods[],float M,int n){???float cu;?int i,j;?for(i=1;i=n;i++)??goods[i].X=0;?cu=M;? //背包剩余容量?for(i=1;in;i++)?{??if(goods[i].wcu)//当该物品重量大与剩余容量跳出???break;?????goods[i].X=1;???cu=cu-goods[i].w;//确定背包新的剩余容量?}?if(i=n)??goods[i].X=cu/goods[i].w;//该物品所要放的量
/*按物品编号做降序排列*/??for(j=2;j=n;j++)?{??goods[0]=goods[j];???? i=j-1;??
??while (goods[0].flaggoods[i].flag)??{???goods[i+1]=goods[i];???i--;??}??goods[i+1]=goods[0];?}///////////////////////////////////////////?cout最优解为:endl;?for(i=1;i=n;i++)?{??cout第i件物品要放:;??coutgoods[i].Xendl;?}
}
void main(){??cout|--------运用贪心法解背包问题---------|endl;?cout|---power by zhanjiantao(028054115)---|endl;?cout|-------------------------------------|endl;?int j;?int n;?float M;?goodinfo *goods;//定义一个指针?while(j)?{?cout请输入物品的总数量:;?cinn;?goods=new struct goodinfo [n+1];//?cout请输入背包的最大容量:;?cinM;?coutendl;?int i;?for(i=1;i=n;i++)??{?goods[i].flag=i;???cout请输入第i件物品的重量:;???cingoods[i].w;???cout请输入第i件物品的效益:;???cingoods[i].p;???goods[i].p=goods[i].p/goods[i].w;//得出物品的效益,重量比???coutendl;?????}?
?Insertionsort(goods,n);?bag(goods,M,n);?coutpress 1 to run agianendl;?coutpress 0 to exitendl;?cinj;?}}
#includestdio.h
#includestdlib.h
#define Max 100/*定义栈结构*/
typedef struct list{?int data[Max];?int top;}
Seqstack; /*定义一个用来存储结果的链表*/
typedef struct List{?Seqstack result;?struct List * Next;}
Seqlist,*Pointer;
void Inicial_List(Pointer p)
{?p=(Pointer)malloc(sizeof(Seqlist));?
p-Next=NULL;}
Seqstack Push_S
您可能关注的文档
最近下载
- 中国移动2018年校园招聘考试笔试题目考试试卷-历年考试真题.doc VIP
- 基础会计洑建红习题答案(新税率).doc VIP
- 蟑螂防治_六_不同场所蟑螂的防治.docx VIP
- 人民大2023商务英语视听说(第1册)(第二版)PPTUnit 8 Work and Life.pptx VIP
- 医美皮肤美容产品芙语诺专业知识课件.pdf VIP
- 跨文化交际:中英文化对比 (14).ppt VIP
- 《乳腺癌术后康复锻炼课件》.ppt VIP
- 科研经费管理规定.docx VIP
- 鲁科版四年级上册劳动项目一 清洁与卫生——班级卫生大扫除(课件).pptx VIP
- 2025年秋学期人教版初中数学八年级上册教学计划教学进度表.docx VIP
文档评论(0)