算法小组报告-公式
证明: \(T(n,m,k) \rightarrow O(nmk)\)
输入过程:
\(\qquad\)输入的时间复杂度为:
\[\begin{aligned}
T_1(n,m,k)= O(n k)
\end{aligned}
\]
计算过程:
\(\qquad\)状态转移方程的时间复杂度为常数项,即\(O(1)\)
\(\qquad\)该过程发生 \(n\times m \times k\) 次,则状态转移的时间复杂度为:
\[\begin{aligned}
T_2(n,m,k) &= O(1) \times n\times m \times k \\
&=O(nmk)
\end{aligned}
\]
故整体的时间复杂度为:
\[\begin{aligned}
T(n,m,k)&=T_1(n,m,k)+T_2(n,m,k)\\
&=O(n k)+O(nmk)\\
& \approx O(nmk)
\end{aligned}
\]
\(\quad\)考虑使用f[i][j] 表示考虑前i组物品且体积为j情况下背包所能装下的最大价值.
\(\quad\)由于物品总数为n,体积最大为m
故该算法的空间复杂度为:
\[\begin{aligned}
O(nm)
\end{aligned}
\]