Dijkstra算法
概述
Dijkstra算法是由荷兰计算机科学家Edsger W. Dijkstra于1956年发明的单源最短路径算法,用于计算加权图中从单一节点到其他所有节点的最短路径。该算法采用贪心策略,保证在所有边权重非负的情况下找到最短路径。
关键内容
-
算法原理:算法维护一个顶点集合,已确定最短路径的顶点放入集合,逐步扩展。每次选择距离源点最近的未处理顶点,更新其邻居的距离估计值。
-
时间复杂度:使用优先队列(如斐波那契堆)时时间复杂度为O(V log V + E),其中V为顶点数,E为边数。
来源
- 算法导论 — 经典教材
- 原始论文分析 — raw/books/计算机科学/06-dijkstra-goto-considered-harmful.md(提及发明背景)
相关
- Edsger W. Dijkstra — invented_by
- 图论 — belongs_to
- 最短路径问题 — solves
- 加权图 — applies_to