资源简介
http://blog.csdn.net/effective_coder/article/details/8736718#cpp
博客开始的背包问题不能达到完美效果,改进,使用博主说的第一种策略和第三种策略结合
代码片段和文件信息
//http://blog.csdn.net/effective_coder/article/details/8736718
//贪心算法
/*
背包问题:有一个背包,背包容量是M=150。有7个物品,物品可以分割成任意大小。要求尽可能让装入背包中的物品总价值最大,但不能超过总容量。
物品 A B C D E F G
重量 35 30 60 50 40 10 25
价值 10 40 30 50 35 40 30
*/
//对于此题有三种贪心策略,第一种是选择价值最大的,第二种是选择价值最小的,第三种是选择单位重量的价值最大的。
//贪心算法重要的是找贪心策略
#include
#define Num 7
using namespace std;
//构造数据结构
struct Node{
char char_mark; //物品
double weight; //重量
double value; //价值
bool mark; //是否已经放到容器中
double pre_weight_value; //单位重量价值
};
int main(){
double Weight[Num]={35306050401025};
double Value[Num]={10403050354030};
cout<<“七种物品的重量和价值:“< for(int index=0;index cout<<“weight:“< }
Node array[Num]; //Node数组用来装载值
//初始化
cout<<“七种物品的单位重量价值:“< for(int i=0;i array[i].char_mark=65+i;
array[i].weight=Weight[i];
array[i].value=Value[i];
array[i].mark=false;
array[i].pre_weight_value=Value[i]/Weight[i];
cout<<“第“< }
double weight_all=0.0;
double value_all=0.0;
double max=0.0;
char charArray[7]; //记录已经选中的结点
int flagn=0; //flag记录当前比重最大的元素序号,以序号0为初始值
w
- 上一篇:C语言战争游戏源代码
- 下一篇:BMS 主控板代码
相关资源
- 用贪心算法求解哈密顿回路
- 0-1背包问题-递归算法 c语言实现
- 贪心算法解决骑士游历问题C语言版
- tsp贪心算法
- 0-1背包问题C语言源码
- 背包问题之贪婪算法求解C语言源代码
- 算法部分背包问题的求解
- 贪心法解决背包问题c语言代码
- 贪心算法编写的01背包问题c/c++
- 遗传、禁忌、模拟退火解背包问题
- 用回溯法、蛮力法解决01背包问题
- 背包问题C语言实现, 动态规划
- 用回溯法解决01背包问题C语言实现
- 01背包问题算法源码(C++)
- 回溯法解决0-1背包问题
- 背包问题九讲.pdf(17页)
- 01背包问题回溯法
- 遗传、禁忌、模拟退火等算法背包问
- 背包问题C++用栈解决
- c c++ 01背包问题动态规划解决
- c语言贪心算法
- 背包问题的求解
- 马踏棋盘问题C语言——基于贪心算法
- 0-1背包问题 回溯算法代码
- 01背包问题回溯法,C++写的
- 旅游背包问题
评论
共有 条评论