Added test case and explanation to unionFind.c

This commit is contained in:
Sesar Hersisson 2019-10-01 15:46:18 +00:00
parent 9b72741a31
commit 7dceadab1c
1 changed files with 28 additions and 1 deletions

View File

@ -1,3 +1,5 @@
#include <stdio.h>
int p[1000000];
int find(int x)
{
@ -17,6 +19,31 @@ void join(int x, int y)
p[find(x)] = find(y);
}
int main() {
int main()
{
// Have all array indexes that you need to use refrence themselves
for (int i = 0; i < 10; i++)
{
p[i] = i;
}
// p = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
join(3, 5);
// Now 3 and 5 are groupped together, that is find(3) = find(5)
// p = {0, 1, 2, 5, 4, 5, 6, 7, 8, 9}
join(3, 8);
// Now 3, 5 and are groupped together, find(3) = find(5) = find(8)
// p = {0, 1, 2, 5, 4, 8, 6, 7, 8, 9}
join(0, 5);
if(find(0) == find(3))
{
printf("0 and 3 are groupped together\n");
}
printf("The array is now: ");
for(int i = 0; i < 10; i++)
{
printf("%d ", p[i]);
}
printf("\n");
return 0;
}