🏷️ 知识点:Kruskal算法

共 3 道相关题目

2012 年第 8 题 数据结构 选择题

下列关于最小生成树的叙述中,正确的是()。

Ⅰ.最小生成树的代价唯一

Ⅱ.所有权值最小的边一定会出现在所有的最小生成树中

Ⅲ.使用普里姆(Prim)算法从不同顶点开始得到的最小生成树一定相同

Ⅳ.使用普里姆算法和克鲁斯卡尔(Kruskal)算法得到的最小生成树总不相同

最小生成树

A. 仅Ⅰ

B. 仅Ⅱ

C. 仅Ⅰ、Ⅲ

D. 仅Ⅱ、Ⅳ

[tag_link]

正确答案:A

对于 Ⅰ, 最小生成树 的树形可能不唯一,但所有最小生成树的总代价都等于全局最小值,因此代价唯一,Ⅰ正确。

对于Ⅱ,若若干条并列最小边本身构成一个环,生成树必须从环中至少舍弃一条边,所以并非每条最小权边都会出现在所有 MST 中,Ⅱ错误。

对于Ⅲ,取 3 个顶点组成三角形,3 条边权值都相同。从不同顶点开始或采用不同的并列边选择顺序,Prim 可得到不同的 MST,Ⅲ错误。

对于Ⅳ,当 MST 唯一时,Prim 与 Kruskal 必须得到同一棵树,因此“总不相同”错误。故仅Ⅰ正确,选 A。


课后题 年第 40 题 数据结构 选择题

用 Prim 算法和 Kruskal 算法构造图的最小生成树,所得到的最小生成树(  )。

A. 相同 B. 不相同 C. 可能相同,可能不同 D. 无法比较

[tag_link]

正确答案:C

结论

选 C。

推导

两种算法都遵循 MST 的贪心性质。若 MST 唯一,二者必得到同一棵树;若存在等权边导致多个 MST,选边顺序可能不同,结果也可能不同。

易错点

“都是最小生成树”不等于“边集合必相同”;应区分最小代价相同与树形唯一。


课后题 年第 44 题 数据结构 选择题

用 Kruskal 算法求一个带权连通图的最小生成树。在算法执行的某时刻,已选取的边集合为 TE={(1,2),(2,3),(3,5)}。要选取下一条权值最小的边,不可能选取的边是(  )。

A. (3,6) B. (2,4) C. (1,3) D. (1,4)

[tag_link]

正确答案:C

结论

选 C。

推导

Kruskal 按边权递增尝试加入边,但若候选边的两个端点已经在同一连通分量中,就会形成回路,必须跳过。TE 已使 1、2、3、5 连成一棵树,因此 (1,3) 会闭合回路,不可能被选入;其余边仍可能连接不同分量。

易错点

“权值最小”不等于“必选”:Kruskal 还要检查加入该边是否成环。