mirror of
https://github.com/huihut/interview.git
synced 2026-03-13 10:02:55 +08:00
添加查找算法和SingleProblem
This commit is contained in:
34
Problems/KnapsackProblem/README.md
Normal file
34
Problems/KnapsackProblem/README.md
Normal file
@@ -0,0 +1,34 @@
|
||||
|
||||
## 背包问题
|
||||
|
||||
### 代码
|
||||
|
||||
[背包问题代码](pack.cpp)
|
||||
|
||||
### 问题说明
|
||||
|
||||
有N件物品和一个容量为V的背包。
|
||||
|
||||
第i件物品的重量是w[i],价值是v[i]。
|
||||
|
||||
求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,
|
||||
|
||||
且价值总和最大。
|
||||
|
||||
### 功能说明
|
||||
|
||||
本程序用动态规划的思想解决了背包问题,并用了两种算法:
|
||||
迭代法、递归法。在迭代法中实现了打印背包问题的表格。
|
||||
|
||||
### 代码简述
|
||||
|
||||
通过用户输入数据,程序输入检测,动态分配空间,选择算法,
|
||||
用动态规划的思想求解背包问题。
|
||||
|
||||
#### 迭代法:
|
||||
通过遍历n行W列,迭代每行每列的值,并把最优解放到
|
||||
n行(在数组中为第n+1行)W列(在数组中为第W+1列)中。
|
||||
|
||||
#### 递归法:
|
||||
通过每次返回前i个物品和承重为j的最优解,
|
||||
递归计算总背包问题的最优解。
|
||||
Reference in New Issue
Block a user