Menu
CoddyTech

时间和空间复杂度

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

时间复杂度:

  • 按这里的写法,时间复杂度为 O(V2 + V*E)(每一轮都会扫描顶点以找到最小值,并扫描边以进行松弛)。使用二叉堆和邻接表后,时间复杂度可优化为 O((V + E) log V)。

空间复杂度:

  • 距离数组和已访问数组需要 O(V) 空间(输入的边除外)。

总结:

  • Dijkstra 通过贪心地确定距离最近的顶点,并松弛其边,来计算从单个源点出发到其他顶点的最短距离,适用于非负权重。
  • 它无法处理负权边;遇到负权边时,请使用 Bellman-Ford。

亲手试试

这节课没有代码挑战。

quiz icon自我测试

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

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

自己练习: C 在线编译器