* 计算机算法设计与分析 * 用回溯法解0-1背包问题 Try(s){ for (i = 0; i 2; i++) { if (W+w[s]*i = C) { N[s] = i; W=W + w[s]*i; NV = NV + v[s]*i;} if (满足成功条件) {成功并输出结果} else Try(s+1); if (不成功) 删去next的记录; }} return 成功与否} s == n * 计算机算法设计与分析 * 用回溯法解0-1背包问题 Try(s){ 做挑选候选者的准备; while (未成功且还有候选者){ 挑选下一个候选者next; if (next可接受) { 记录next; if (满足成功条件) {成功并输出结果} else Try(s+1); if (不成功) 删去next的记录; }} return 成功与否} for (i = 0; i 2; i++) { (Accept(s) { Record(s) (s = = n) s = = n {if ( better ) TakeNewChoice(
原创力文档

文档评论(0)