请大神帮我看下这个程序哪里出问题了(0⼀1背包问题)

2024-12-15 20:37:16
推荐回答(1个)
回答1:

void Sort()
{ //将物品按单位重量价值递增
int i,j,k;
float pw[N];
for(j=1;j<=n;j++)
pw[j]=(float)(p[j]/w[j]);
for(i=1;i<=n-1;i++)
{ //用选择排序
k=i;
for(j=i+1;j<=n;j++)
if(pw[j]>pw[k])
k=j;
if(k!=i)
{
}
}
}
这个函数if(k!=i)下边的括号里应该写pw[i]与p[k]的交换。
而且你这个Sort函数只写了,根本没有使用。
看这个参考一下,http://zhidao.baidu.com/question/439908883.html
你是两种方法用混了吧,贪心算法和回溯算法。