diff options
| author | mzuenni <michi.zuendorf@gmail.com> | 2023-03-28 13:25:59 +0200 |
|---|---|---|
| committer | mzuenni <michi.zuendorf@gmail.com> | 2023-03-28 13:25:59 +0200 |
| commit | fe5fa1141efeb7454c763dbd2645fb4ff04487a3 (patch) | |
| tree | f2197bb94ce80ab2fae886177dfa9b0bd11538ac /datastructures/unionFind.cpp | |
| parent | 3b91d2662310aee532cc84e1447824459671767e (diff) | |
merged
Diffstat (limited to 'datastructures/unionFind.cpp')
| -rw-r--r-- | datastructures/unionFind.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/datastructures/unionFind.cpp b/datastructures/unionFind.cpp index 03ff63e..35843cd 100644 --- a/datastructures/unionFind.cpp +++ b/datastructures/unionFind.cpp @@ -12,12 +12,10 @@ int findSet(int n) { // Pfadkompression } void linkSets(int a, int b) { // Union by rank. - if (unions[a] > unions[b]) unions[a] = b; - else if (unions[b] > unions[a]) unions[b] = a; - else { - unions[a] = b; - unions[b]--; -}} + if (unions[b] > unions[a]) swap(a, b); + if (unions[b] == unions[a]) unions[b]--; + unions[a] = b; +} void unionSets(int a, int b) { // Diese Funktion aufrufen. if (findSet(a) != findSet(b)) linkSets(findSet(a), findSet(b)); |
