跳到内容
← 全部问题

在 Dijkstra 算法中,选择下一个要处理的顶点的规则是什么?

规则是选择具有最小暂定距离标签的未圈出顶点。然后圈出该顶点以将其标记为已确定,并从提供此最小距离的顶点画出前驱箭头。这种贪心选择确保了到所选顶点的最短路径被最终确定。

适用条件

  • 有分配了距离标签的未圈出顶点。
  • 算法在更新邻居后处于选择阶段。

理解与推导

  1. 扫描所有未圈出的顶点以获取其暂定距离标签。
  2. 识别其中的最小标签。
  3. 选择对应该最小标签的顶点。
  4. 圈出该顶点以将其标记为已确定。
  5. 从其前驱画一个箭头以记录路径。
  6. 继续更新这个新确定顶点的邻居。

例子

在视频中,初始化家之后,未圈出的顶点是 A(2)A (2) 和 C(3)C (3)。最小的是 A 处的 2,所以 A 被圈出。后来,在未圈出的顶点 B(6)B (6)、C(3)C (3)、D(4)D (4)、E(4)E (4) 中,最小的是 C 处的 3,所以 C 被圈出。演讲者说:“现在我们寻找写在图上的最小未圈出数字。在这种情况下是二,所以我们要把它圈起来……”

容易误解的地方

  • 选择距离最大的顶点。
  • 选择已经圈出的顶点。
  • 忽略距离标签并随机选择。

观看对应讲解

继续追问

答案依据视频资料生成并经过独立核验。若有疑问,请核对原视频或联系原作者。