OSDN Git Service

fix: typo; writing
authorYuan-Hang Zhang <sailordiary@users.noreply.github.com>
Tue, 21 Aug 2018 03:31:33 +0000 (11:31 +0800)
committerGitHub <noreply@github.com>
Tue, 21 Aug 2018 03:31:33 +0000 (11:31 +0800)
含笑->很小
成->称

下面一节就是路径压缩,不用再留悬念了

当祖先的儿子这个有点谐啊2333(

docs/data-structure/novice/dsu.md

index 44ecc70..be84724 100644 (file)
@@ -5,7 +5,7 @@
 \r
 - 查找 (Find):确定某个元素处于哪个子集;\r
 \r
-- å\90\88并ï¼\88Unionï¼\89ï¼\9aå°\86两个å­\90é\9b\86å\90\88å\90\88并æ\88\90å\90\8c一个集合。\r
+- å\90\88并ï¼\88Unionï¼\89ï¼\9aå°\86两个å­\90é\9b\86å\90\88并æ\88\90一个集合。\r
 \r
 ## 初始化  \r
 \r
@@ -25,7 +25,7 @@ void makeSet(int size)
 !!! 举个例子   \r
 几个家族进行宴会,但是家族普遍长寿,所以人数众多。由于长时间的分离以及年龄的增长,这些人逐渐忘掉了自己的亲人,只记得自己的爸爸是谁了,而最长者(称为「祖先」)的父亲已经去世,他只知道自己是祖先。为了确定自己是哪个家族,他们想出了一个办法,只要问自己的爸爸是不是祖先,一层一层的向上问,直到问到祖先。如果要判断两人是否在同一家族,只要看两人的祖先是不是同一人就可以了。  \r
 \r
-在这样的思想下,并查集的查找诞生了。我们可以用代码模拟这个过程。(路径压缩等会再说)  \r
+在这样的思想下,并查集的查找算法诞生了。我们可以用代码模拟这个过程。\r
 \r
 ```cpp\r
 int fa[MAXN]; //记录某个人的爸爸是谁,特别规定,祖先的爸爸是他自己\r
@@ -69,11 +69,11 @@ void unionSet(int x,int y)//x与y所在家族合并
 }\r
 ```\r
 \r
-### 启发式合并\r
+### 启发式合并(按秩合并)\r
 \r
-一个祖先突然抖了机灵:「你们家族人比较少,搬家到我们家族里比较方便,我们要是搬过去的话太费事了。」  \r
+一个祖先突然抖了机灵:「你们家族人比较少,搬家到我们家族里比较方便,我们要是搬过去的话太费事了。」  \r
 \r
-启发式合并是将深度小的集合合并到深度大的集合(也成为按秩合并),但是笔者认为这样做的话路径压缩之后它就失去意义了,或按照节点数量,这样还可以减少下次路径压缩的工作量。(反正启发式合并用得很少,路径压缩已经够快了。)\r
+启发式合并是将深度小的集合合并到深度大的集合(也称为**按秩合并**),但是笔者认为路径压缩之后它就失去意义了,或者不如按照节点数量合并,这样还可以减少下次路径压缩的工作量。(反正启发式合并用得很少,路径压缩已经够快了。)\r
 \r
 ```cpp\r
 int size[N];//记录子树的大小\r
@@ -93,7 +93,7 @@ void unionSet(int x,int y)
 \r
 ### 时间复杂度\r
 \r
\90\8cæ\97¶ä½¿ç\94¨è·¯å¾\84å\8e\8b缩å\92\8cå\90¯å\8f\91å¼\8få\90\88并ä¹\8bå\90\8eï¼\8c并æ\9f¥é\9b\86ç\9a\84æ¯\8f个æ\93\8dä½\9cå¹³å\9d\87æ\97¶é\97´ä»\85为 $O(\alpha(n))$ ï¼\8cå\85¶ä¸­ $\alpha$ ä¸º [é\98¿å\85\8bæ\9b¼å\87½æ\95°](https://en.wikipedia.org/wiki/Ackermann_function) ç\9a\84å\8f\8då\87½æ\95°ï¼\8cå\85¶å¢\9eé\95¿æ\9e\81å\85¶ç¼\93æ\85¢ï¼\8cä¹\9få°±æ\98¯è¯´å\85¶å¹³å\9d\87è¿\90è¡\8cæ\97¶é\97´å\8f¯ä»¥è®¤ä¸ºæ\98¯ä¸\80个å\90«ç¬\91的常数。 \r
\90\8cæ\97¶ä½¿ç\94¨è·¯å¾\84å\8e\8b缩å\92\8cå\90¯å\8f\91å¼\8få\90\88并ä¹\8bå\90\8eï¼\8c并æ\9f¥é\9b\86ç\9a\84æ¯\8f个æ\93\8dä½\9cå¹³å\9d\87æ\97¶é\97´ä»\85为 $O(\alpha(n))$ ï¼\8cå\85¶ä¸­ $\alpha$ ä¸º [é\98¿å\85\8bæ\9b¼å\87½æ\95°](https://en.wikipedia.org/wiki/Ackermann_function) ç\9a\84å\8f\8då\87½æ\95°ï¼\8cå\85¶å¢\9eé\95¿æ\9e\81å\85¶ç¼\93æ\85¢ï¼\8cä¹\9få°±æ\98¯è¯´å\85¶å¹³å\9d\87è¿\90è¡\8cæ\97¶é\97´å\8f¯ä»¥è®¤ä¸ºæ\98¯ä¸\80个å¾\88å°\8f的常数。 \r
 \r
 ### 空间复杂度\r
 \r