unwanted reinitialization of variables during recursive calls
Hi,
i have this recursive knapsack algorithm. The variables (maxValue, spaceRemaining, currentValue) do not seem(?) to be reinitialized -seems strange. Can somebody point out why?
What if i instead of having
int maxValue=0, spaceRemaining=0, currentValue=0;
,
i had
int maxValue, spaceRemaining, currentValue;
maxValue=0;
spaceRemaining=0;
currentValue=0;
,
publicstaticint pack(int capacity)
{
int maxValue=0, spaceRemaining=0, currentValue=0;
for (int i=0; i<svs_.size(); i++)
{
spaceRemaining=capacity-svs_.getSpace(i);
if (spaceRemaining>=0)
{
currentValue=pack(spaceRemaining)+svs_.getValue(i);
}
if (currentValue > maxValue)
{
maxValue=currentValue;
}
}
return maxValue;
}//pack

