数据结构基础 背包问题(一) 之 非递归解

这篇博客探讨了背包问题的非递归算法,包括初始化flag数组进行暴力枚举和利用贪心算法与动态规划求解。文章通过实例解释了贪心算法如何在不同背包问题类型中设定标准,并展示了动态规划的状态和状态转移方程如何应用。
摘要由CSDN通过智能技术生成

【问题描述】

“背包题目”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1,w2,…,wn,希望从N件物品中选择若干物品,所选物品的重量之和恰能放进该背包,即所选物品的重量之和即是S。递归和非递归解法都能,试非递归算法求得“背包题目”的一组解

【算法分析】

1.此程序是得到问题的所有解;

2.本题只对背包有重量约束;

3.算法思想(暴力枚举)

1)初始化flag数组,数组长度为背包数目 n,数组为全 0 序列,0,1表示是否添加第 i 个 背包,初始状态下一个背包都不添加;

2)添加背包的排列的可能性为2^n种,n为背包的数目:

a.循环中 flag 每次遇到1则补零进位,遇到0则补一并退出对 flag 的循环更新;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值