void union_sets(int a, int b) {
a = find_set(a);
b = find_set(b);
if (a != b) {
if (size[a] < size[b])
swap(a, b);
parent[b] = a;
size[a] += size[b];
}
}
Q1.why we need this swapping? can't we do like this without swapping
if (size[a] < size[b])
parent[a] = b;
size[b] += size[a];
Q2.what is the difference between size array and rank array.Is Rank means the height of a node and size means no of node in that tree which contains this node