《算法图论:BFS/DFS 实战(迷宫问题 + 拓扑排序)》(442)
### 《算法图论:BFS/DFS 实战(迷宫问题 + 拓扑排序)》 🚀
在图论算法中,**广度优先搜索(BFS)**和**深度优先搜索(DFS)**是两大经典遍历方法,它们不仅能解决基础的路径查找问题,还能应用于更复杂的场景,比如**迷宫问题**和**拓扑排序**。
#### 🧩 迷宫问题:BFS vs DFS
假设有一个二维迷宫,`0`代表通路,`1`代表墙壁,我们需要从起点`(0,0)`走到终点`(n-1,n-1)`。
- **BFS** 🌀:逐层扩展,**保证找到最短路径**。用队列实现,适合无权图的最短路径问题。
- **DFS** 🌊:一路走到底再回溯,用栈(递归)实现,**可能更快找到一条路径**,但不一定最短。
**代码片段(BFS迷宫)**:
```python
from collections import deque
def bfs_maze(maze):
queue = deque([(0, 0)])
while queue:
x, y = queue.popleft()
if (x, y) == (n-1, n-1):
return True
for dx, dy in [(0,1), (1,0), (0,-1), (-1,0)]:
nx, ny = x+dx, y+dy
if 0<=nx<n and 0<=ny<n and maze[nx][ny]==0:
queue.append((nx, ny))
return False
```
#### 📊 拓扑排序:DFS的经典应用
拓扑排序用于**有向无环图(DAG)**的任务调度,比如课程依赖关系。DFS的后序遍历反转结果就是拓扑序!
**代码片段(DFS拓扑排序)**:
```python
def topo_sort(graph):
visited, stack = set(), []
def dfs(node):
visited.add(node)
for neighbor in graph[node]:
if neighbor not in visited:
dfs(neighbor)
stack.append(node) # 后序压栈
for node in graph:
if node not in visited:
dfs(node)
return stack[::-1] # 反转结果
```
#### 总结 🎯
- **BFS**:最短路径、扩散问题(如社交网络层级关系)。
- **DFS**:拓扑排序、连通性检测、回溯问题。
掌握这两种算法,就能轻松应对大多数图论挑战啦!💪
5G.okatady121.asia/PoSt/1125_401859.HtM
5G.okatady120.asia/PoSt/1125_474711.HtM
5G.okatady119.asia/PoSt/1125_841903.HtM
5G.okatady118.asia/PoSt/1125_004017.HtM
5G.okatady117.asia/PoSt/1125_699362.HtM
5G.okatady116.asia/PoSt/1125_485236.HtM
5G.okatady115.asia/PoSt/1125_185492.HtM
5G.okatady114.asia/PoSt/1125_877737.HtM
5G.okatady113.asia/PoSt/1125_188871.HtM
5G.okatady112.asia/PoSt/1125_208644.HtM
5G.okatady121.asia/PoSt/1125_201007.HtM
5G.okatady120.asia/PoSt/1125_552600.HtM
5G.okatady119.asia/PoSt/1125_692389.HtM
5G.okatady118.asia/PoSt/1125_704598.HtM
5G.okatady117.asia/PoSt/1125_036347.HtM
5G.okatady116.asia/PoSt/1125_335262.HtM
5G.okatady115.asia/PoSt/1125_696632.HtM
5G.okatady114.asia/PoSt/1125_692224.HtM
5G.okatady113.asia/PoSt/1125_770125.HtM
5G.okatady112.asia/PoSt/1125_467151.HtM
5G.okatady111.asia/PoSt/1125_667692.HtM
5G.okatady110.asia/PoSt/1125_855849.HtM
5G.okatady109.asia/PoSt/1125_404951.HtM
5G.okatady108.asia/PoSt/1125_393346.HtM
5G.okatady107.asia/PoSt/1125_559568.HtM
5G.okatady106.asia/PoSt/1125_968143.HtM
5G.okatady105.asia/PoSt/1125_214740.HtM
5G.okatady104.asia/PoSt/1125_474373.HtM
5G.okatady103.asia/PoSt/1125_184698.HtM
5G.okatady102.asia/PoSt/1125_474481.HtM
5G.okatady111.asia/PoSt/1125_682727.HtM
5G.okatady110.asia/PoSt/1125_162061.HtM
5G.okatady109.asia/PoSt/1125_747451.HtM
5G.okatady108.asia/PoSt/1125_737420.HtM
5G.okatady107.asia/PoSt/1125_060965.HtM
5G.okatady106.asia/PoSt/1125_817403.HtM
5G.okatady105.asia/PoSt/1125_962862.HtM
5G.okatady104.asia/PoSt/1125_678830.HtM
5G.okatady103.asia/PoSt/1125_541421.HtM
5G.okatady102.asia/PoSt/1125_929751.HtM
5G.okatady111.asia/PoSt/1125_660915.HtM
5G.okatady110.asia/PoSt/1125_882898.HtM
5G.okatady109.asia/PoSt/1125_284719.HtM
5G.okatady108.asia/PoSt/1125_004292.HtM
5G.okatady107.asia/PoSt/1125_252203.HtM
5G.okatady106.asia/PoSt/1125_178455.HtM
5G.okatady105.asia/PoSt/1125_352711.HtM
5G.okatady104.asia/PoSt/1125_341455.HtM
5G.okatady103.asia/PoSt/1125_246018.HtM
5G.okatady102.asia/PoSt/1125_322684.HtM
5G.okatady111.asia/PoSt/1125_852568.HtM
5G.okatady110.asia/PoSt/1125_818857.HtM
5G.okatady109.asia/PoSt/1125_732992.HtM
5G.okatady108.asia/PoSt/1125_404896.HtM
5G.okatady107.asia/PoSt/1125_933566.HtM
5G.okatady106.asia/PoSt/1125_745276.HtM
5G.okatady105.asia/PoSt/1125_630044.HtM
5G.okatady104.asia/PoSt/1125_488569.HtM
5G.okatady103.asia/PoSt/1125_669654.HtM
5G.okatady102.asia/PoSt/1125_816049.HtM
5G.okatady111.asia/PoSt/1125_900089.HtM
5G.okatady110.asia/PoSt/1125_355647.HtM
5G.okatady109.asia/PoSt/1125_607420.HtM
5G.okatady108.asia/PoSt/1125_588613.HtM
5G.okatady107.asia/PoSt/1125_018503.HtM
5G.okatady106.asia/PoSt/1125_076370.HtM
5G.okatady105.asia/PoSt/1125_070921.HtM
5G.okatady104.asia/PoSt/1125_340158.HtM
5G.okatady103.asia/PoSt/1125_777861.HtM
5G.okatady102.asia/PoSt/1125_815513.HtM
5G.okatady111.asia/PoSt/1125_973195.HtM
5G.okatady110.asia/PoSt/1125_811207.HtM
5G.okatady109.asia/PoSt/1125_776710.HtM
5G.okatady108.asia/PoSt/1125_322679.HtM
5G.okatady107.asia/PoSt/1125_006838.HtM
5G.okatady106.asia/PoSt/1125_443633.HtM
5G.okatady105.asia/PoSt/1125_133021.HtM
5G.okatady104.asia/PoSt/1125_504558.HtM
5G.okatady103.asia/PoSt/1125_004439.HtM
5G.okatady102.asia/PoSt/1125_033714.HtM
查看10道真题和解析
