更新图片链接
This commit is contained in:
@@ -63,7 +63,7 @@ kruscal的思路:
|
||||
|
||||
依然以示例中,如下这个图来举例。
|
||||
|
||||

|
||||

|
||||
|
||||
将图中的边按照权值有小到大排序,这样从贪心的角度来说,优先选 权值小的边加入到 最小生成树中。
|
||||
|
||||
@@ -77,13 +77,13 @@ kruscal的思路:
|
||||
|
||||
选边(1,2),节点1 和 节点2 不在同一个集合,所以生成树可以添加边(1,2),并将 节点1,节点2 放在同一个集合。
|
||||
|
||||

|
||||

|
||||
|
||||
--------
|
||||
|
||||
选边(4,5),节点4 和 节点 5 不在同一个集合,生成树可以添加边(4,5) ,并将节点4,节点5 放到同一个集合。
|
||||
|
||||

|
||||

|
||||
|
||||
**大家判断两个节点是否在同一个集合,就看图中两个节点是否有绿色的粗线连着就行**
|
||||
|
||||
@@ -93,25 +93,25 @@ kruscal的思路:
|
||||
|
||||
选边(1,3),节点1 和 节点3 不在同一个集合,生成树添加边(1,3),并将节点1,节点3 放到同一个集合。
|
||||
|
||||

|
||||

|
||||
|
||||
---------
|
||||
|
||||
选边(2,6),节点2 和 节点6 不在同一个集合,生成树添加边(2,6),并将节点2,节点6 放到同一个集合。
|
||||
|
||||

|
||||

|
||||
|
||||
--------
|
||||
|
||||
选边(3,4),节点3 和 节点4 不在同一个集合,生成树添加边(3,4),并将节点3,节点4 放到同一个集合。
|
||||
|
||||

|
||||

|
||||
|
||||
----------
|
||||
|
||||
选边(6,7),节点6 和 节点7 不在同一个集合,生成树添加边(6,7),并将 节点6,节点7 放到同一个集合。
|
||||
|
||||

|
||||

|
||||
|
||||
-----------
|
||||
|
||||
@@ -126,7 +126,7 @@ kruscal的思路:
|
||||
|
||||
此时 我们就已经生成了一个最小生成树,即:
|
||||
|
||||

|
||||

|
||||
|
||||
在上面的讲解中,看图的话 大家知道如何判断 两个节点 是否在同一个集合(是否有绿色的线连在一起),以及如何把两个节点加入集合(就在图中把两个节点连上)
|
||||
|
||||
@@ -346,7 +346,7 @@ int main() {
|
||||
|
||||
大家可能发现 怎么和我们 模拟画的图不一样,差别在于 代码生成的最小生成树中 节点5 和 节点7相连的。
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
其实造成这个差别 是对边排序的时候 权值相同的边先后顺序的问题导致的,无论相同权值边的顺序是什么样的,最后都能得出最小生成树。
|
||||
@@ -366,7 +366,7 @@ Kruskal 与 prim 的关键区别在于,prim维护的是节点的集合,而 K
|
||||
|
||||
节点未必一定要连着边那, 例如 这个图,大家能明显感受到边没有那么多对吧,但节点数量 和 上述我们讲的例子是一样的。
|
||||
|
||||

|
||||

|
||||
|
||||
为什么边少的话,使用 Kruskal 更优呢?
|
||||
|
||||
@@ -760,3 +760,4 @@ int main()
|
||||
}
|
||||
|
||||
```
|
||||
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>
|
||||
|
||||
Reference in New Issue
Block a user