Show the result of the following sequence of instructions: union(1,2), union(3,4), union(3,5), union(1,7), union(3,6), union(8,9), union(1,8), union(3,10), union (3,11), union(3,12), union(3,13), union(14,15), union(16,0), union(14,16), union (1,3), union(1, 14) when the unions are: a. Performed arbitrarily. b. Performed by height. c. Performed by size.
Read moreTextbook Solutions for Data Structures and Algorithm Analysis in Java
Question
Suppose we implement partial path compression on find(i) by making every othernode on the path from i to the root link to its grandparent (where this makes sense).This is known as path halving.a. Write a procedure to do this.b. Prove that if path halving is performed on the finds and either union-by-heightor union-by-size is used, the worst-case running time is O(M(M,N)).
Solution
The first step in solving 8 problem number 16 trying to solve the problem we have to refer to the textbook question: Suppose we implement partial path compression on find(i) by making every othernode on the path from i to the root link to its grandparent (where this makes sense).This is known as path halving.a. Write a procedure to do this.b. Prove that if path halving is performed on the finds and either union-by-heightor union-by-size is used, the worst-case running time is O(M(M,N)).
From the textbook chapter The Disjoint Set Class you will find a few key concepts needed to solve this.
Visible to paid subscribers only
Step 3 of 7)Visible to paid subscribers only
full solution