The worst case scenario is:

- Make-Set(
*x*_{1}) - ...
- Make-Set(
*x*_{n}) {{*x*_{1}}, {*x*_{2}}, {*x*_{3}}, , {*x*_{n}}} - Union(
*x*_{1},*x*_{2}) {{ }, {*x*_{3}}, , {*x*_{n}}} - Union(
*x*_{2},*x*_{3}) {{ }, , {*x*_{n}}} - ...
- Union(
*x*_{q-1},*x*_{q}) {{ }

n = #Make-Set operations

m = #Make-Set, Union, and Find-Set operations

m = n + (q - 1) operations

T(m) =

=

n = and q =

Therefore, T(m) =
and the amortized cost is per operation.

Can we do better?