From fe5fa1141efeb7454c763dbd2645fb4ff04487a3 Mon Sep 17 00:00:00 2001 From: mzuenni Date: Tue, 28 Mar 2023 13:25:59 +0200 Subject: merged --- datastructures/unionFind.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'datastructures/unionFind.cpp') 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)); -- cgit v1.2.3