算法--搜索与图

这里写目录标题

主要内容

DFS

思想

会优先向深处搜索 一旦到达最深处 那么会回溯 但是在回溯的过程中 会边回溯边观察是否有能继续深入的点 如果有 那么继续深入搜 直到他确认该点深处都被搜过了 才会放过这个点 继续回溯

就是按照一颗树的顺序 并且以深度优先的顺序来存放数据

但是我们不需要新建一颗树 而是存放每一次搜索的路径 并且也需要自己写一个栈 系统会有一个隐性栈 帮我们维护栈

同时回溯的时候 要恢复现场 恢复搜索前的现场 如下图

从1 2 _ 回溯时

要恢复到1 _ _ 的样子

BFS

思想

BFS会一层一层查找 他会确保当前层都搜完了 再去搜索下一层

DFS与BFS的比较

DFS空间较小 但是BFS具有最短路性质

之所以DFS没有最短路 如上 加入加一条边 那么要搜索到左下角那个点的话 DFS可能返回的路径是3步 但是最短的是2步 所以不具有最短路性质

但是换做BFS 按层查找 那么肯定会先从最外面那条边搜到目标点

一级目录

二级目录

二级目录

二级目录

一级目录

二级目录

二级目录

二级目录

一级目录

二级目录

二级目录

二级目录

相关推荐
haoly198911 小时前
数据结构和算法篇-线性查找优化-移至开头策略
数据结构·算法·移至开头策略
学Linux的语莫14 小时前
机器学习数据处理
java·算法·机器学习
earthzhang202115 小时前
【1007】计算(a+b)×c的值
c语言·开发语言·数据结构·算法·青少年编程
2301_8035545216 小时前
C++联合体(Union)详解:与结构体的区别、联系与深度解析
java·c++·算法
sali-tec17 小时前
C# 基于halcon的视觉工作流-章42-手动识别文本
开发语言·人工智能·算法·计算机视觉·c#·ocr
SandySY17 小时前
品三国谈人性
算法·架构
小欣加油18 小时前
leetcode 62 不同路径
c++·算法·leetcode·职场和发展
夏鹏今天学习了吗18 小时前
【LeetCode热题100(38/100)】翻转二叉树
算法·leetcode·职场和发展
夏鹏今天学习了吗18 小时前
【LeetCode热题100(36/100)】二叉树的中序遍历
算法·leetcode·职场和发展
DTS小夏18 小时前
算法社Python基础入门面试题库(新手版·含答案)
python·算法·面试