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 want to add an extra operation, deunion, which undoes the last unionoperation that has not been already undone.a. Show that if we do union-by-height and finds without path compression, thendeunion is easy and a sequence of M union, find, and deunion operations takesO(M logN) time.b. Why does path compression make deunion hard? c. Show how to implement all three operations so that the sequence of Moperations takes O(M logN/log logN) time.
Solution
The first step in solving 8 problem number 10 trying to solve the problem we have to refer to the textbook question: Suppose we want to add an extra operation, deunion, which undoes the last unionoperation that has not been already undone.a. Show that if we do union-by-height and finds without path compression, thendeunion is easy and a sequence of M union, find, and deunion operations takesO(M logN) time.b. Why does path compression make deunion hard? c. Show how to implement all three operations so that the sequence of Moperations takes O(M logN/log logN) time.
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