700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 背包问题 贪心算法 java_JS基于贪心算法解决背包问题

背包问题 贪心算法 java_JS基于贪心算法解决背包问题

时间:2018-09-03 00:11:20

相关推荐

背包问题 贪心算法 java_JS基于贪心算法解决背包问题

前面我们分享了关于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

相关推荐:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。