回溯法和dfs的区别

值得注意,回溯法以深度优先搜索的方式搜索解空间,并且在搜索过程中用剪枝函数避免无效搜索。那为何 回溯算法 = 深度优先搜索 + 剪枝函数这一说法没有错?
因为树是特殊的图。简单来说,树是广义的图。再简单来说,树是图。
因此,回溯算法与深度优先搜索的关系也昭然若揭。因为,实施算法的对象(数据结构)都是图,所以,两者可以相提并论,存在一些共性,回溯算法也得以在搜索时使用深度优先算法。
也显而易见,回溯算法 也并不简单的可以说回溯算法 = 深度优先搜索 + 剪枝函数。
因为并不是所有图都是树。
深度优先搜索适用于所有图。而回溯算法只适用于树结构。
任何解空间可以映射成树结构的问题,都可以使用回溯法。任何解空间不能映射成树结构的问题,都不可以使用回溯法。
说到这里,大概也弄明白了两者的关系。
陈述一个比较正确的结论:
回溯算法 = 树的深度优先搜索 + 剪枝函数
回溯:方法论。
剪枝:一种方法。
dfs:一种算法。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值