美文网首页
深度搜索与回溯

深度搜索与回溯

作者: 一个咸芋 | 来源:发表于2017-09-16 23:41 被阅读0次

深度搜索与回溯法的区别

回溯法 = 深搜 + 剪枝。一般大家用深搜时,或多或少都会剪枝。深搜一般用递归实现,比较简洁。深搜能够在候选答案生成一半的时候,就进行判断,抛弃不满足要求的答案,所以深搜比暴力法更快。

深度搜索与递归的区别

深搜经常用递归来实现。
深搜,是逻辑意义上的算法,递归是一种物理意义上的实现,它和迭代相对应。深搜,可以用递归来实现,也可以用栈来实现;而递归一般总是来实现深搜。可以说递归一定是深搜,深搜不一定用递归。
递归有两种加速策略,一种是剪枝,对中间结果进行判断,提前返回,一种是加缓存,缓存中间结果。防止重复计算,用空间换时间。
其实, 递归+缓存,就是一种备忘录法。
备忘录法不一定用递归,就像深搜不一定用递归一样,可以在迭代中使用备忘录。
在大多数情况下,递归和深搜是一回事儿,在单链表,二叉树,等递归数据结构上,递归的味道更浓,在图等数据结构上,递归的比重不大,就使用深搜这个术语。

相关文章

  • 深度搜索与回溯

    深度搜索与回溯法的区别 回溯法 = 深搜 + 剪枝。一般大家用深搜时,或多或少都会剪枝。深搜一般用递归实现,比较简...

  • 46.全排列

    思路 深度搜索+回溯 2021.03.27

  • Depth First Search

    概述 DFS(Depth First Search) => 深度优先搜索算法 => 递归与回溯,通常隐含了栈的实现...

  • 学习回溯法中的思考

    回溯法是一种用递归来实现的穷举法,是深度搜索优先算法。 我又联想到了,深度搜索优先和广度搜索优先,与栈和队...

  • 深度优先搜索

    深度优先搜索思路 深度优先搜索 = 回溯法可以通过遍历或者分治法的思想实现深度优先搜索而递归和迭代 (非递归)两种...

  • 人工智能(6)Dynamic Programming

    上次提到了,回溯(Backtrack),深度和广度搜索,一些演化的算法,比如规定了最大深度的深度搜索,或者叫做DF...

  • 算法之回溯算法详解

    回溯算法 定义 回溯算法实际上基于DFS(深度优先搜索)的一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问...

  • 算法思想 - 回溯算法

    回溯思想 回溯算法的思想非常好理解,之前我们也使用回溯的思想完成了图的深度优先搜索。简单来说,回溯的思想是这样的:...

  • 回溯和深度优先遍历(一)

    本文谈谈回溯算法和深度优先搜索。 回溯法可以看成是一种暴力搜索,穷举。看起来“暴力”给人的印象似乎都是比较简单,而...

  • 面试必看算法题 | 回溯算法解题框架

    目录 1. 概述 1.1 回溯思想 回溯算法(Backtrack)是一种试错思想,本质上是深度优先搜索。即:从问题...

网友评论

      本文标题:深度搜索与回溯

      本文链接:https://www.haomeiwen.com/subject/tyausxtx.html