Quick Union: Exercise

  • Explain the runtime improvements gained by using the heuristics for union-find operations.
  • Define the iterated logarithm (log-star) function.
  • Identify the amortized runtime of union-find operations.

Suppose you have singleton sets with the values $0$ through $6$. Then, we apply the following operations.

union(0,5) 
union(1,4) 
union(2,3) 
union(3,6) 
union(4,6) 
union(0,4) 

Exercise Using both tree and array forms, show the result of each of the operations listed above, applying union-by-size and path compression heuristics.

Solution

Here is the start:

After union(0,5):

After union(1,4):

After union(2,3):

After union(3,6): notice the size of the component containing $6$ is smaller than the size of the component containing $3$. Therefore, the component containing $6$ is added to the root of the component containing $3$.

After union(4,6): notice the size of the component containing $4$ is smaller than the size of the component containing $6$. Therefore, the component containing $4$ is added to the root of the component containing $6$.

After union(0,4): notice as we find the root of the component containing $4$, we apply path compression.

Then, as the size of the component containing $0$ is smaller than the size of the component containing $4$, the component containing $0$ is added to the root of the component containing $4$.