Problem 6: Disjoint sets. Let operations Union() and Find-Set() be efficient: that means sets are implemented by trees, the name of the new set is always the name of the deepest set, and when finding a representative of the set employs the path compression on its way up. (i) On the set of disjoint sets {{1}, {2}, . . . , {10}} we perform the following sequence of operations: Union(1, 3), Union(4, 5), Union(6, 1), Union(6, 3), Union(7, 8), Union(10, 9), Union(3, 10), Find-Set(2), Find-Set(10), Find-Set(9) and Find-Set(8). Draw your data structure after the last Union() operation and after each of the Find-Set() operations. (ii) On the set of disjoint sets {{1}, {2}, . . . , {n}} perform n − 1 Union() operations such that the first Find-Set() operation will be as slow as possible. Write down the sequence of Union() operations and the element of the first Find-Set() operation. Elaborate. Hint: How slow the operation Find-Set() can be
Problem 6: Disjoint sets. Let operations Union() and Find-Set() be efficient: that
means sets are implemented by trees, the name of the new set is always the name of the
deepest set, and when finding a representative of the set employs the path compression on
its way up.
(i) On the set of disjoint sets {{1}, {2}, . . . , {10}} we perform the following sequence of
operations:
Union(1, 3), Union(4, 5), Union(6, 1), Union(6, 3), Union(7, 8), Union(10, 9),
Union(3, 10), Find-Set(2), Find-Set(10), Find-Set(9) and Find-Set(8).
Draw your data structure after the last Union() operation and after each of the
Find-Set() operations.
(ii) On the set of disjoint sets {{1}, {2}, . . . , {n}} perform n − 1 Union() operations
such that the first Find-Set() operation will be as slow as possible. Write down the
sequence of Union() operations and the element of the first Find-Set() operation.
Elaborate.
Hint: How slow the operation Find-Set() can be
Step by step
Solved in 3 steps