前面我们分享了关于js使用贪心算法解决找零问题,本文我们接着为大家介绍JS基于贪心算法解决背包问题。

贪心算法:在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。寻找最优解的过程,目的是得到当前最优解。

部分背包问题:固定容积的背包能放入物品的总最大价值

物品 A B C D

价格 50 220 60 60

尺寸 5 20 10 12

比率 10 11 6 5

按比例降序尽可能多放入物品function greedy(values, weights, capacity){

var returnValue = 0

var remainCapacity = capacity

var sortArray = []

values.map((cur, index) =>{

sortArray.push({

'value': values[index],

'weight': weights[index],

'ratio': values[index]/weights[index]

})

})

sortArray.sort(function(a, b){

return b.ratio > a.ratio

})

console.log(sortArray)

sortArray.map((cur,index) => {

var num = parseInt(remainCapacity/cur.weight)

console.log(num)

remainCapacity -= num*cur.weight

returnValue += num*cur.value

})

return returnValue

}

var items = ['A','B','C','D']

var values = [50,220,60,60]

var weights = [5,20,10,12]

var capacity = 32 //背包容积

greedy(values, weights, capacity) // 320

相关推荐:

背包问题 贪心算法 java_JS基于贪心算法解决背包问题相关推荐

  1. 背包问题 贪心算法 java_JS基于贪心算法解决背包问题示例

    本文实例讲述了JS基于贪心算法解决背包问题.分享给大家供大家参考,具体如下: 贪心算法:在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局 ...

  2. xgboost算法_基于XGBoost算法构建投资组合

    摘要 极端梯度提升 (eXtreme Gradient Boosting) 是一种基于决策树的集成机器学习方法,适用于分类和回归问题.其优点是速度快.效果好.能处理大规模数据.支持自定义损失函数等. ...

  3. burg算法 matlab,基于burg算法的谱估计研究及其matlab实现.doc

    基于burg算法的谱估计研究及其matlab实现 XX大学学院 毕业设计(论文) 相关资料 题目: 基于 其MATLAB实现 机电 系 电子信息工程 专业学 号: 学生姓名: 指导教师: (职称:讲 ...

  4. 【DA算法】基于DA算法的FIR滤波器的FPGA实现

    1.软件版本 quartusii 2.本算法理论知识 DA算法的主要特点是,巧妙地利用查找表将固定系数的MAC运算转化为查表操作,其运算速度不随系数和输入数据位数的增加而降低,而且相对直接实现乘法器而 ...

  5. 【有限马尔科夫链状态分解+Kosaraju 算法】基于Kosaraju 算法和可达矩阵的有限马尔科夫链状态分解

    有限马尔科夫链状态分解+Kosaraju 算法 1 实验内容 2 理论基础 3 题目分析 4 按常返性和互通性对状态空间进行分解算法流程 4.1 强连通性和强连通分量 4.2 基于有向图 Kosara ...

  6. 路径规划算法:基于樽海鞘算法的路径规划算法- 附代码

    路径规划算法:基于樽海鞘优化的路径规划算法- 附代码 文章目录 路径规划算法:基于樽海鞘优化的路径规划算法- 附代码 1.算法原理 1.1 环境设定 1.2 约束条件 1.3 适应度函数 2.算法结果 ...

  7. 路径规划算法:基于蜻蜓算法的路径规划算法- 附代码

    路径规划算法:基于蜻蜓优化的路径规划算法- 附代码 文章目录 路径规划算法:基于蜻蜓优化的路径规划算法- 附代码 1.算法原理 1.1 环境设定 1.2 约束条件 1.3 适应度函数 2.算法结果 3 ...

  8. snm算法_基于SNM算法的大数据量中文商品清洗方法

    基于 SNM 算法的大数据量中文商品清洗方法 ∗ 张苗苗 苏 勇 [摘 要] 摘 要 SNM 算法即邻近排序算法,是英文数据清洗最常用的算法[ 1 ] . 目前为止,因为中英文语义的差异等一些原因,中 ...

  9. snm算法_基于SNM算法的大数据量中文地址清洗方法-计算机工程与应用.PDF

    基于SNM算法的大数据量中文地址清洗方法-计算机工程与应用 108 2014 ,50(5 ) Computer Engineering and Applications 计算机工程与应用 基于SNM ...

最新文章

  1. Vagrant安装指南
  2. 三分钟教会你搭建动态网络
  3. Java连接mysql数据库的方式,java连接mysql数据库的方式(4句语句)
  4. 函数式编程语言python-写 Python 代码不可不知的函数式编程技术
  5. mysql5.7命中率_MySQL5.7中 performance和sys schema中的监控参数解释(推荐)
  6. JDBC——概述与JDBC的使用
  7. React:Redux简介
  8. [转] 电子技术*笔记4【2013-03】
  9. VHDL实验-实现一位全加器
  10. SaltStack ----(五)Jinja模板的使用
  11. 出现Ncat: bind to 0.0.0.0:9999: Address already in use. QUITTING.如何解决?
  12. Flash绘画与动画宝典
  13. 基于JavaSwing开发麻雀捉小鸡游戏+论文: (大作业/毕业设计)
  14. 知识点滴 - 我们的太阳系
  15. 语音识别工具kaldi简介
  16. SQL注入闭合方式及万能密码
  17. spyder pyecharts不显示_微星PAG272QRZ显示器好不好用 微星PAG272QRZ显示器全面评测_显示器_硬件教程...
  18. 数据结构与算法2:线性表的顺序存储与链式存储
  19. C语言模拟银行排队叫号(顺序队)
  20. 拼多多商家如何虚假发货的情况出现?

热门文章

  1. [渝粤教育] 西南科技大学 高级英语(2) 在线考试复习资料
  2. 【渝粤教育】广东开放大学 PHP动态网站设计 形成性考核 (48)
  3. 【渝粤题库】广东开放大学 跨境电商实务之搜索引擎 形成性考核
  4. 【渝粤题库】陕西师范大学151101 经济法概论作业 (笔试题型)
  5. EMUI10安装java_linux ubuntu系统安装java jdk和配置环境,pycharm安装
  6. java导出pdf 含图片_java 生成PDF含图片和中文件实现代码
  7. 问题 1076: 内部收益率
  8. Learning Cocos2d-x for WP8(7)——让Sprite动起来
  9. [Java开发]打印当前路径到控制台
  10. Java中的注解是如何工作的?