Update 图论并查集理论基础.md

修正错别字和语病
This commit is contained in:
sss1h
2024-02-27 15:03:50 +08:00
committed by GitHub
parent b132f5273d
commit 3fc2fb9954

View File

@ -108,7 +108,7 @@ bool isSame(int u, int v) {
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20230602102619.png)
如果这棵多叉树高度很深的话每次find函数 去寻找的过程就要递归很多次。
如果这棵多叉树高度很深的话每次find函数 去寻找的过程就要递归很多次。
我们的目的只需要知道这些节点在同一个根下就可以,所以对这棵多叉树的构造只需要这样就可以了,如图:
@ -300,7 +300,7 @@ join(3, 2);
**因为路经压缩了**
即如下代码在寻找的过程中,会有路径压缩,减少 下次查询的路径长度。
即如下代码在寻找的过程中,会有路径压缩,减少 下次查询的路径长度。
```
// 并查集里寻根的过程
@ -396,7 +396,7 @@ void join(int u, int v) {
if (rank[u] <= rank[v]) father[u] = v; // rank小的树合入到rank大的树
else father[v] = u;
if (rank[u] == rank[v] && u != v) rank[v]++; // 如果两棵树高度相同则v的高度+1因为面 if (rank[u] <= rank[v]) father[u] = v; 注意是 <=
if (rank[u] == rank[v] && u != v) rank[v]++; // 如果两棵树高度相同则v的高度+1因为面 if (rank[u] <= rank[v]) father[u] = v; 注意是 <=
}
```
@ -423,7 +423,7 @@ void join(int u, int v) {
空间复杂度: O(n) 申请一个father数组。
关于时间复杂度,如果想精确表达出来需要繁琐的数学证明,就不在本篇讲解范围内了,大家感兴趣可以自己去深入研究。
关于时间复杂度,如果想精确表达出来需要繁琐的数学证明,就不在本篇讲解范围内了,大家感兴趣可以自己去深入研究。
这里做一个简单的分析思路。