JS基于贪心算法解决背包问题示例


Posted in Javascript onNovember 27, 2017

本文实例讲述了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

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
浅析JavaScript中的typeof运算符
Nov 30 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
Oct 20 Javascript
jQuery实现Twitter的自动文字补齐特效
Nov 28 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
Sep 01 Javascript
jQuery 如何给Carousel插件添加新的功能
Apr 18 Javascript
Bootstrap中datetimepicker使用小结
Dec 28 Javascript
JavaScript初学者必看“new”
Jun 12 Javascript
微信小程序实现拖拽 image 触摸事件监听的实例
Aug 17 Javascript
vue项目部署到Apache服务器中遇到的问题解决
Aug 24 Javascript
vue router 用户登陆功能的实例代码
Apr 24 Javascript
小程序如何构建骨架屏
May 29 Javascript
JS实现移动端双指缩放和旋转方法
Dec 13 Javascript
基于vue.js的分页插件详解
Nov 27 #Javascript
webpack构建换肤功能的思路详解
Nov 27 #Javascript
vue实现商城上货组件简易版
Nov 27 #Javascript
修改UA在PC中访问只能在微信中打开的链接方法
Nov 27 #Javascript
Vue的移动端多图上传插件vue-easy-uploader的示例代码
Nov 27 #Javascript
vue实现商城购物车功能
Nov 27 #Javascript
Vim快速合并行及vim 将文件所有行合并到一行
Nov 27 #Javascript
You might like
解析argc argv在php中的应用
2013/06/24 PHP
学习php设计模式 php实现状态模式
2015/12/07 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
ThinkPHP框架里隐藏index.php
2016/04/12 PHP
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
[原创]php正则删除html代码中class样式属性的方法
2017/05/24 PHP
动态调用CSS文件的JS代码
2010/07/29 Javascript
Javascript函数式编程语言
2015/10/11 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
常用Javascript函数与原型功能收藏(必看篇)
2016/10/09 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
2016/12/01 Javascript
JS简单生成由字母数字组合随机字符串示例
2018/05/25 Javascript
JavaScript 继承 封装 多态实现及原理详解
2019/07/29 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
Vue中jsx不完全应用指南小结
2019/11/01 Javascript
JS简易计算器实例讲解
2020/06/30 Javascript
javascript中闭包closure的深入讲解
2021/03/03 Javascript
Python实现的简单发送邮件脚本分享
2014/11/07 Python
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
在Linux系统上安装Python的Scrapy框架的教程
2015/06/11 Python
Python for Informatics 第11章之正则表达式(二)
2016/04/21 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
Python爬虫之爬取淘女郎照片示例详解
2020/07/28 Python
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
Tory Burch英国官方网站:美国时尚生活品牌
2017/12/06 全球购物
2014迎新年晚会策划方案
2014/02/23 职场文书
学习雷锋精神心得体会范文
2014/03/12 职场文书
新春寄语大全
2014/04/09 职场文书
初中班主任评语
2014/04/24 职场文书
建筑专业毕业生自荐信
2014/05/25 职场文书
奉献爱心演讲稿
2014/09/04 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
健康状况证明书
2014/11/26 职场文书
《兰兰过桥》教学反思
2016/02/20 职场文书
golang switch语句的灵活写法介绍
2021/05/06 Golang
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
2022/08/14 Python