欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS基于貪心算法解決背包問(wèn)題示例

 更新時(shí)間:2017年11月27日 14:23:24   作者:Spider--Man  
這篇文章主要介紹了JS基于貪心算法解決背包問(wèn)題,簡(jiǎn)單說(shuō)明了貪心算法的概念、原理,并結(jié)合具體實(shí)例形式分析了JS使用貪心算法解決部分背包問(wèn)題的具體操作技巧,需要的朋友可以參考下

本文實(shí)例講述了JS基于貪心算法解決背包問(wèn)題。分享給大家供大家參考,具體如下:

貪心算法:在對(duì)問(wèn)題求解時(shí),總是做出在當(dāng)前看來(lái)是最好的選擇。也就是說(shuō),不從整體最優(yōu)上加以考慮,他所做出的僅是在某種意義上的局部最優(yōu)解。

尋找最優(yōu)解的過(guò)程,目的是得到當(dāng)前最優(yōu)解

部分背包問(wèn)題:固定容積的背包能放入物品的總最大價(jià)值

物品 A B C D
價(jià)格 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

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript排序算法總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論