Advertisement

01背包问题的三种方法(动态规划、回溯法无优化及优化)

阅读量:

针对01背包问题的三种求解方式,实际上主要依托于两种算法理念:动态规划以及回溯法。
然而,对于回溯法而言,可以通过引入剪枝策略加以优化。因此,此处提供了两段代码**,其中第二段代码中的getmost()函数未采用剪枝处理,而getbag()函数则实施了剪枝操作。**
动态规划算法的具体实现代码如下:

复制代码
    #include<stdio.h>
    #include<stdlib.h>
    
    int flag[5]={1,1,1,1,1};
    int weight[5]={0,2,3,4,5};
    int value[5]={0,1,2,3,4};
    int v[100][100];
    #define W 10
    #define M 7
    
    //求最大值
    int max(int a,int b){
    if(a>b){
        return a;
    }else
    {
        return b;
    }
    }
    
    void getV(){
    //初始化数组
    for(int i=0;i<=W;i++){
        v[0][i]=0;
    }
    for(int i=0;i<5;i++){
        v[i][0]

全部评论 (0)

还没有任何评论哟~