From 3710e5ec134b777813c4c8a534ca714d03b10dbd Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Sat, 31 Mar 2018 16:48:35 +0800 Subject: [PATCH] auto commit --- notes/算法.md | 28 +++++++++--------- pics/9764bf07-4840-486c-988f-334acefc3f49.png | Bin 0 -> 14336 bytes pics/c5043b7e-6efe-4c55-b663-272e1097ed21.png | Bin 0 -> 15360 bytes 3 files changed, 14 insertions(+), 14 deletions(-) create mode 100644 pics/9764bf07-4840-486c-988f-334acefc3f49.png create mode 100644 pics/c5043b7e-6efe-4c55-b663-272e1097ed21.png diff --git a/notes/算法.md b/notes/算法.md index 079a53e0..fa740d34 100644 --- a/notes/算法.md +++ b/notes/算法.md @@ -354,21 +354,21 @@ public class UF { 但是 union 操作代价却很高,需要将其中一个连通分量中的所有节点 id 值都修改为另一个节点的 id 值。 -

+

```java - public int find(int p) { - return id[p]; - } - public void union(int p, int q) { - int pID = find(p); - int qID = find(q); +public int find(int p) { + return id[p]; +} +public void union(int p, int q) { + int pID = find(p); + int qID = find(q); - if (pID == qID) return; - for (int i = 0; i < id.length; i++) { - if (id[i] == pID) id[i] = qID; - } + if (pID == qID) return; + for (int i = 0; i < id.length; i++) { + if (id[i] == pID) id[i] = qID; } +} ``` ## quick-union @@ -377,7 +377,7 @@ public class UF { 但是 find 操作开销很大,因为同一个连通分量的节点 id 值不同,id 值只是用来指向另一个节点。因此需要一直向上查找操作,直到找到最上层的节点。 -

+

```java public int find(int p) { @@ -563,12 +563,12 @@ public class Shell {

-

- ### 1. 归并方法 归并方法将数组中两个已经排序的部分归并成一个。 +

+ ```java public class MergeSort { private static Comparable[] aux; diff --git a/pics/9764bf07-4840-486c-988f-334acefc3f49.png b/pics/9764bf07-4840-486c-988f-334acefc3f49.png new file mode 100644 index 0000000000000000000000000000000000000000..0c99b1cbf142c723f645f81e2cf5b8f09345b398 GIT binary patch literal 14336 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 BmBau5 literal 0 HcmV?d00001