c语言解决01背包问题示例代码

代码语言:c

所属分类:算法

代码描述:c语言解决01背包问题示例代码,01背包问题就是你需要选择一组物品放入一个背包,以使它们的总价值最大化,同时不超过背包的容量限制。

代码标签: c 语言 解决 01 背包 问题 示例 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

#include <stdio.h>

int max(int a, int b) {
   
return (a > b) ? a: b;
}

void knapsack(int values[], int weights[], int capacity, int n) {
   
int dp[n + 1][capacity + 1];
   
int i,
    w
; // 将变量声明移到循环外

   
for (i = 0; i <= n; i++) {
       
for (w = 0; w <= capacity; w++) {
           
if (i == 0 || w == 0) {
                dp
[i][w] = 0;
           
}
           
else if (weights[i - 1] <= w) {
                dp
[i][w] = max(values[i - 1] + dp[i - 1][w - weights[.........完整代码请登录后点击上方下载按钮下载查看

网友评论0