用贪心算法求解普通背包问题的C++代码

2019年3月6日 125次阅读 来源: 贪心算法

#include

#define  M  100

void display(int &n,double &C,double s[M],double p[M])

{

int i;

cout<

cin>>n;

cout<

cout<

cin>>C;

cout<

cout<

s[0]=0;

for(i=1;i<=n;i++)

cin>>s[i];

cout<

p[0]=0;

for(i=1;i<=n;i++)

cin>>p[i];

};

void asc(int n,double s[M],double p[M])//按照价值密度的降序排列;

{

int i,j;

double   temp1,temp2,temp3,c[M];

for(i=1;i<=n;i++)

c[i]=p[i]/s[i];

for(i=1;i

for(j=1;j<=n-i;j++)

if(c[j]

{

temp1=p[j];p[j]=p[j+1];p[j+1]=temp1;

temp2=s[j];s[j]=s[j+1];s[j+1]=temp2;

temp3=c[j];c[j]=c[j+1];c[j+1]=temp3;

}

};

void knapsack(int n,double C,double s[M],double p[M],double x[M])//,double totalp)

{

int i;

double c1;

asc(n,s,p);

c1=C;

while(c1!=0)

{

for(i=1;i<=n;i++)

{

if(s[i]<=c1)

{

x[i]=1;

c1=c1-s[i];

}

else if(s[i]>c1)

{

x[i]=c1/s[i];

c1=0;

}

// totalp=totalp+p[i]*x[i];

}

}

};

void main()

{

int i,n;

double C=0,totalp=0,s[M],p[M],x[M];

char ch;

while(1)

{

display(n,C,s,p);

knapsack(n,C,s,p,x);//,totalp);

cout<

for(i=1;i<=n;i++)

cout<

cout<

//  for(i=1;i<=n;i++)

//  cout<

//  cout<

cout<

for(i=1;i<=n;i++)

{

cout<

totalp=totalp+p[i]*x[i];

}

cout<

cout<

cout<

cin>>ch;

if(ch==’Y’||ch==’y’)

continue;

else

break;

}

}

贪心算法 背包问题代码 c语言,用贪心算法求解普通背包问题的C++代码相关推荐

  1. fifo算法c语言程序代码,c语言实现fifo算法及代码

    C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言. 尽管C语言提供了许多低级处理的功 ...

  2. c语言选择排序详解及代码,C语言选择排序算法及实例代码

    选择排序是排序算法的一种,这里以从小到大排序为例进行讲解. 基本思想及举例说明 选择排序(从小到大)的基本思想是,首先,选出最小的数,放在第一个位置:然后,选出第二小的数,放在第二个位置:以此类推,直 ...

  3. 银行家算法实验报告c语言版,银行家算法实验报告C语言版.doc

    <操作系统>课程综合性实验报告 姓名: 学号: 2016 年 11 月 20 日 实验题目进程调度算法程序设计一.实验目的 通过对安全性算法和银行家算法的模拟,进一步理解资源分配的基本概念 ...

  4. python做算法题优势_Python语言在科学算法中的优势

    2019 年第 4 期 信息与电脑 China Computer & Communication 算法语言 Python 语言在科学算法中的优势 刘 瑞 (辽宁师范大学海华学院,辽宁 沈阳 1 ...

  5. java 离散算法_用JAVA语言实现离散数学算法

    用JAVA语言实现离散数学算法 用JAVA语言实现离散数学算法 * 显示离散数学算法的真值表 * 提供将一个中缀合适公式的真值表输出到某一PrintStream流中的功能 * 以单个大写字母表示变量( ...

  6. c语言des算法实验报告,c语言实现des算法des加密算法实验报告

    c语言实现des算法des加密算法实验报告 (23页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 xx 工程大学工程大学实验报告实验报告 ...

  7. c语言des算法实验报告,C语言实现DES算法实验报告解析.doc

    C语言实现DES算法实验报告解析 xx工程大学 实验报告 (2015-2016学年第一学期) 报告题目: DES加密算法 课程名称: 密码学B 任课教员: 专 业: 学 号: 姓 名: 二O一六年一月 ...

  8. c语言一些算法解题技巧,c语言常见小算法的解题思路.doc

    c语言常见小算法的解题思路 判定某一年是否是闰年 闰年时间:四年一闰,百年不闰,四百年再闰.,其中 大写字母转小写字母 大写字母+32 = 小写字母 A = 65 a = 97 输入一个华氏温度,要求 ...

  9. c语言交通违章编程代码,C语言程序设计之交通处罚单管理系统报告材料内含代码...

    <C语言程序设计之交通处罚单管理系统报告材料内含代码>由会员分享,可在线阅读,更多相关<C语言程序设计之交通处罚单管理系统报告材料内含代码(34页珍藏版)>请在人人文库网上搜索 ...

最新文章

  1. Poemscape|Beta阶段第九天
  2. 4.PHP正则表达式与数组
  3. 九度oj 题目1537:买卖股票
  4. STM32F407的硬件I2C
  5. OPENWRT的串口初试
  6. set python用法_Python set()用法及代码示例
  7. Webservice接口
  8. 关于StopSelf
  9. 京东物流系统架构演进中的最佳实践
  10. Java 坐标系相互转换
  11. 华为:三层交换机 命令示例
  12. 方便面又好卖了!康师傅天猫618狂增10倍,还说这只是起点
  13. (二)Jointly Optimizing Diversity and Relevance in Neural Response Generation
  14. 小学教师评职称计算机考试题,中小学美术教师职称晋升招聘考试题库(含答案)1...
  15. FusionCharts 的刷新
  16. Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(二)统计篇
  17. 虚拟服务器共用,vm共享虚拟主机(vmware共享的虚拟机)
  18. mysql 导入大于2m_用phpmyadmin导入大于2M的数据,导入大量数据的方法
  19. Abstract(抽象) implement和extend
  20. 【方案】去哪儿网徐磊:如何利用开源技术构建日处理130亿+的实时日志平台?...

热门文章

  1. 通过python-pptx模块操作ppt文件
  2. 竞价广告每次点击出价多少钱是固定的吗?
  3. 一维数组与对象深拷贝的几种方法(指数组、对象中均无嵌套)
  4. python儿童宣传-为什么让孩子学Python会这么火?
  5. CSS - 精灵图和字体图标
  6. [DataAnalysis]关联分析
  7. soi cmos技术及其应用_航空制造业的激光焊接技术及其应用
  8. 视差滚动的原理及实现
  9. 清华北大2018届毕业生去向统计
  10. Set里的元素是不能重复的,那么用什么方法来区分重复与否呢 是用==还是equals() 它们有何区别