2016 数据结构 最短路径Dijkstra算法 选择题
第 8 题

使用迪杰斯特拉(Dijkstra)算法求下图中从顶点 1 到其他各顶点的最短路径,依次得到的各最短路径的目标顶点是( )。

2016 年 408 数据结构第 8 题有向带权图

最短路径

A. 5, 2, 3, 4, 6 B. 5, 2, 3, 6, 4 C. 5, 2, 4, 3, 6 D. 5, 2, 6, 3, 4

[tag_link]

正确答案:B

根据 Dijkstra 算法,从顶点 1 到其余各顶点的最短路径如下表所示。

顶点第 1 趟第 2 趟第 3 趟第 4 趟第 5 趟
25v1​→v2​5v1​→v2​
37v1​→v2​→v3​
411v1​→v5​→v4​11v1​→v5​→v4​11
v1​→v5​→v4​
11v1​→v5​→v4​
54v1​→v5​
69v1​→v5​→v6​9v1​→v5​→v6​9v1​→v5​→v6​
集合 S{1, 5}{1, 5, 2}{1, 5, 2, 3}{1, 5, 2, 3, 6}{1, 5, 2, 3, 6, 4}

顶点 1 到其余顶点的最终最短距离分别为 d(5)=4d(2)=5d(3)=7d(6)=9d(4)=11。Dijkstra 每轮固定当前暂定距离最小的未确定顶点,因此顺序为 5,2,3,6,4,选 B。