Menu
CoddyTech

伪代码

Coddy Dijkstra 算法:图算法 课程的第 4 课,共 9 课。

dijkstra(n, edges, source):
   dist = [INF, INF, ...]; dist[source] = 0
   visited = all false
   repeat n times:
      u = unvisited vertex with smallest dist (none reachable -> stop)
      visited[u] = true
      for each edge (a -> b, weight w):
         if a == u and dist[u] + w < dist[b]:
            dist[b] = dist[u] + w
   replace every remaining INF with -1
   return dist
  • INF 只是一个比任何实际距离都大的数字(例如 1000000000)。
  • 每轮选择距离最小的未访问顶点,是 Dijkstra 算法的贪心核心。扫描扁平的边列表来松弛边,能让代码保持简单,并且适用于所有语言。

亲手试试

这节课没有代码挑战。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

Dijkstra 算法:图算法中的所有课

自己练习: C 在线编译器