贪心算法解决背包问题
来源:互联网 发布:homebrew 安装的mysql 编辑:程序博客网 时间:2024/04/29 19:15
感觉算法很简单,当练习C++了
#include <iostream>using namespace std;/*利用贪心算法解决背包问题,注意不是0-1背包问题1.按照物品单位重量的价值进行排序,然后就是从最贵的开始装,若剩下的背包空间不足以装下一个物品,那么就将该物品的部分装入*/typedef struct { float weight; float value; float v_w;}Thing;void sort(Thing *&things,int n){ int flag; float temp; for(int i=0;i<n - 1 ;i++) { flag = 0; for(int j=n-1;j > i;j--) { if((things+j)->v_w < (things+j-1)->v_w ) { temp =(things+j)->v_w; (things+j)->v_w = (things+j-1)->v_w; (things+j-1)->v_w = temp; flag = 1; } } if (flag == 0) break; }}int main(){ int n; float tempw,tempv,c;//c为容量 cout<<"请输入物品的个数:"; cin>>n; float *x = new float[n];//为每一个物品记录该物品装入了多少1为全装进去 for(int i =0;i<n;i++){ x[i] = 0.0f; } Thing *things = new Thing[n]; cout<<"请输入每个物品的重量以及价值一个物品一行:"<<endl; for(int i =0;i<n;i++){ cin>>tempw>>tempv; (things+i)->weight = tempw; (things+i)->value = tempv; (things+i)->v_w = tempv/tempw; } sort(things,n);//按照性价比排序// cout<<"输入完毕"<<endl;// cout<<"共有"<<n<<"个物品,他们的重量与价值分别是:"<<endl;// for(int i = 0;i<n;i++){// cout<<"物品"<<i+1<<"的容量:"<<(things+i)->weight<<" 价值:"<<(things+i)->value<<" 性价比:"<<(things+i)->v_w<<endl;// } cout<<"请输入背包的容量:"; cin>>c; int f; for(f = 0;f<n;f++){ if((things+f)->weight > c) break; x[f] = 1; c-=(things+f)->weight; } if(f<n) x[f] = c/((things+f)->weight); for(int i = 0;i<n;i++){ cout<<"重量为"<<(things+i)->weight<<" 价值为"<<(things+i)->value<<" 的物品装入"<<x[i]<<endl; } return 0;}
0 0
- 贪心算法解决背包问题
- 贪心算法解决背包问题
- 贪心算法解决背包问题
- 贪心算法解决部分背包问题
- 数据结构(C#)-- 贪心算法解决背包问题
- 贪心算法解决0 1背包问题
- 用贪心算法解决背包问题
- Java描述贪心算法解决背包问题
- [贪心算法]java解决背包问题
- 贪心算法 - 背包问题
- 贪心算法----背包问题
- 【贪心算法】:背包问题
- 贪心算法-背包问题
- 贪心算法 背包问题
- 贪心算法-背包问题
- 【贪心算法】背包问题
- 贪心算法-背包问题
- 贪心算法--背包问题
- ORM对象关系映射
- Assertion failure in -[SKSTableView _configureCellForDisplay:forIndexPath:]
- Ubuntu 安装 Sublime Text 3 及破解方法 Install Sublime Text 3 in Ubuntu via PPA
- JAVA集合小结
- 【Unity3D自学记录】纯GUI实现黑白棋
- 贪心算法解决背包问题
- 聚合查询的用法(当有sum/avg)这些函数时的用法
- java学习--while和if的区别
- PHP快速入门 -- 函数fopen()
- 特殊的函数调用导致的堆栈信息不对的情况
- flex效果
- GridView的一些特殊属性
- webservice接口原理
- oracle优化