貪心法解決連續揹包問題
阿新 • • 發佈:2019-01-06
ContinuousKnapsack(w[1..n],v[1..n],L) //Input:n件物品的重量陣列w和價值陣列v,揹包承重L //Output:沒見物品放入揹包的重量陣列p[1..n],總價值C for i=1 to n do p[i]=0 r[i]=v[i]/w[i] Sort r in decreasing order,change the order v and w correspondingly l=0; k=1 while L>l and k<=n do if w[k]<=L-1 p[k]=w[k] l+=w[k] C+=v[k] k++ else p[k]=L-1 l+=p[k] C+=p[k]*r[k] return p and C
該演算法的時間效率為Θ(nlogn)