两者都在加权图中找到从源点出发的最短路径。Dijkstra 更快但需要非负权重;Bellman-Ford 更慢但可以处理负边并检测负环。
Dijkstra(贪心 + min-heap)
反复扩展最近的未访问节点并松弛其邻居。
python
heapq
():
dist = {n: () n graph}
dist[src] =
pq = [(, src)]
pq:
d, u = heapq.heappop(pq)
d > dist[u]:
v, w graph[u]:
d + w < dist[v]:
dist[v] = d + w
heapq.heappush(pq, (dist[v], v))
dist
