在 Dijkstra 算法中,选择下一个要处理的顶点的规则是什么?
规则是选择具有最小暂定距离标签的未圈出顶点。然后圈出该顶点以将其标记为已确定,并从提供此最小距离的顶点画出前驱箭头。这种贪心选择确保了到所选顶点的最短路径被最终确定。
适用条件
- 有分配了距离标签的未圈出顶点。
- 算法在更新邻居后处于选择阶段。
理解与推导
- 扫描所有未圈出的顶点以获取其暂定距离标签。
- 识别其中的最小标签。
- 选择对应该最小标签的顶点。
- 圈出该顶点以将其标记为已确定。
- 从其前驱画一个箭头以记录路径。
- 继续更新这个新确定顶点的邻居。
例子
在视频中,初始化家之后,未圈出的顶点是 和 。最小的是 A 处的 2,所以 A 被圈出。后来,在未圈出的顶点 、、、 中,最小的是 C 处的 3,所以 C 被圈出。演讲者说:“现在我们寻找写在图上的最小未圈出数字。在这种情况下是二,所以我们要把它圈起来……”
容易误解的地方
- 选择距离最大的顶点。
- 选择已经圈出的顶点。
- 忽略距离标签并随机选择。
观看对应讲解
YouTubeDijkstra算法(寻找最短路径)
0:41 – 0:54原站看这一段 ↗
继续追问
答案依据视频资料生成并经过独立核验。若有疑问,请核对原视频或联系原作者。