深度搜索与回溯

深度搜索与回溯法的区别

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

深度搜索与递归的区别

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容