算法小组报告-公式

证明: \(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} \]

posted @ 2023-11-03 18:22  浪矢-CL  阅读(10)  评论(0编辑  收藏  举报