الگوریتم کوله پشتی صفر و یک ( روش پویا) :
void dpknapsack(float p[],float w[], int n , float m,int x[])
{
float p1,w1;
set s[n+1],s1[n+1];
s[0]={(0,0)};
for(i=1;i<=n;i++)
{
s1={(p1,w1)|(p1-p,w1-w)Es[i-1]&&w1<=M};
s=merge(s[i-1],s1);
}
(p1,w1)=last tuple in s[n];
for(i=n;i>0;i--)
if(p1,w1)Es[i-1]
x=0;
else
{
x=1;
(p1,w1)=(p1-p,w1-w);
}
}
صفحه 211 کتاب طراحی الگوریتم نوشته دکتر محمود نقیب زاده