动态规划和深搜的优劣
时间: 2023-11-04 21:18:55 浏览: 177
动态规划和深度优先搜索(DFS)是两种不同的算法,各自有着不同的优劣势。
动态规划是一种通过将问题分解成子问题并记录子问题的最优解来解决复杂问题的方法。它适用于具有重叠子问题和最优子结构性质的问题。优点是可以避免重复计算,通过缓存中间结果来提高效率。它可以在多项式时间内求解一些经典问题,如最长公共子序列、背包问题等。但是,动态规划需要额外的空间来存储中间结果,对于一些问题可能需要较多的存储空间。
深度优先搜索是一种用于遍历或搜索图或树的方法,它通过尽可能深地搜索节点的分支来查找解决方案。它具有简单的实现和理解,不需要额外的存储空间。深度优先搜索在解决一些问题时具有一些优势,例如在寻找所有可能解的情况下。但是,深度优先搜索可能会陷入无限循环,需要正确处理循环和重复的状态。此外,深度优先搜索可能会找到一个解,但不一定是最优解。
综上所述,动态规划适用于具有最优子结构性质的问题,可以在多项式时间内求解一些经典问题,但需要额外的存储空间。而深度优先搜索适用于遍历或搜索图或树的问题,可以找到一个解,但不一定是最优解,并且不需要额外的存储空间。所以根据具体问题的性质和要求,选择合适的算法可以更高效地解决问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [3、动态规划之基础介绍1](https://download.csdn.net/download/weixin_35830270/86319505)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [Python宽搜(BFS)和深搜(DFS)](https://blog.csdn.net/weixin_45758642/article/details/122945316)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文