用回溯法求解0-1背包问题

利用回溯法设计具有数据输入、处理和输出功能的0-1背包问题求解算法,实现算法的编译和运行,记录实验过程并整理实验结果;编写算法实现对0-1背包问题求解,基于回溯法的效率评估。

算法描述:

伪代码:

/*

*回溯函数 参数t表示当前处在第几层做抉择,t=1时表示当前在决定是否将第一个物品放入背包

*/

procedure Backtrack(t:integer)

begin

    //叶子节点,输出结果

    if t > n then

    begin

        //如果找到了一个更优的解

        if All_Value > BestValue then

        begin

            //保存更优的值和解

            BestValue =: All_Value;

            for  i:integer <- 1 to n do ++i

                BestX[i] =: x[i];

        end;

    end;

    else

    begin

        //遍历当前节点的子节点:0 不放入背包,1放入背包

        for i:integer <- 0 to  1 do ++i)

        begin

            x[t] =: i;

            if i == 0 then //不放入背包

            begin

                Backtrack(t + 1);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值