数据结构八股
图形搜索算法
1. 深度优先搜索(DFS)
原理:DFS 采用 回溯 思想,优先沿着某一条路径走到底,再回溯到上一个分支点继续探索其他路径,直到遍历完所有可能的路径。
2. 广度优先搜索(BFS)
原理:BFS 采用 队列 结构,从起点开始,按层级依次遍历所有相邻节点,再向外扩展。
3.DFS 和 BFS 的比较
特性 | DFS | BFS |
---|---|---|
数据结构 | 栈(递归/显式) | 队列 |
实习方式 | 递归 or 显式栈 | 队列 + 循环 |
适用场景 | 深度探索、路径搜索 | 最短路径、连通性检测 |
空间复杂度 | O(d)O(d)O(d)(d 为深度) | O(w)O(w)O(w)(w 为宽度) |
时间复杂度 | O(V+E)O(V + E)O(V+E) | O(V+E)O(V + E)O(V+E) |
适合目标 | 解决路径、连通性问题 | 解决最短路径问题 |