javascript
背包问题 贪心算法 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
相關推薦:
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的背包问题 贪心算法 java_JS基于贪心算法解决背包问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 经典的java程序_Java经典程序
- 下一篇: java chsftp.get 追加_J