欢迎光临散文网 会员登陆 & 注册

C++经典算法问题:背包问题(迭代+递归算法)!含源码示例

2021-10-05 19:00 作者:C语言编程__Plus  | 我要投稿



问题说明

有N件物品和一个容量为V的背包。

第i件物品的重量是w[i],价值是v[i]。

求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,

且价值总和最大。

功能说明

本程序用动态规划的思想解决了背包问题,并用了两种算法: 迭代法、递归法。在迭代法中实现了打印背包问题的表格。

代码简述

通过用户输入数据,程序输入检测,动态分配空间,选择算法, 用动态规划的思想求解背包问题。

迭代法:

通过遍历n行W列,迭代每行每列的值,并把最优解放到 n行(在数组中为第n+1行)W列(在数组中为第W+1列)中。

递归法:

通过每次返回前i个物品和承重为j的最优解, 递归计算总背包问题的最优解。

源码示例

今天的分享就到这里了,大家要好好学C++哟~

写在最后:对于准备学习C/C++编程的小伙伴,如果你想更好的提升你的编程核心能力(内功)不妨从现在开始!

微信公众号:C语言编程学习基地

整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!



C++经典算法问题:背包问题(迭代+递归算法)!含源码示例的评论 (共 条)

分享到微博请遵守国家法律