Idea: Keep track of the number of objects in a set (length of list). Append shorter list to longer list.
Theorem 22.1
A sequence of m operations, n of which are Make-Set operations, takes O(m + n lg n) time.
Proof: Since we only change rep(x) for objects in the shorter list for each Union, and lists start at length=1, then each Union at least doubles the size of x's list. Thus, we can do at most Unions that require rep(x) changes, and there are n objects.
As a result, there are a total of O(n lg n) changes.
If we add the O(1) costs for the O(m) Make-Set and Find-Set operations, we get O(m + nlgn).