Design Analysis of Algorithm

Analysis Of Union By Rank With Path Compression

Analysis of union by rank with path compression: As noted in Disjoint-set forests, the running time of the combined union-by-rank and path-compression heuristic is O(m α (n)) for m disjoint-set operations on n elements. In this section, we shall examine the function α to see just how slowly it grows. Then we prove this running time using the potential method of amortized analysis.

A very quickly growing function and its very slowly growing inverse

For integers k 0 and j 1, we define the function Ak(j) as

where the expression uses the functional-iteration notation given in Standard notations and common functions Specifically, and for i 1. We will refer to the parameter k as the level of the function A.

The function Ak(j) strictly increases with both j and k. To see just how quickly this function grows, we first obtain closed-form expressions for A1(j) and A2(j).

Lemma 21.2

For any integer j 1, we have A1(j) = 2 j 1.

Proof We first use induction on i to show that . For the base case, we have . For the inductive step, assume that . Then . Finally, we note that .

Lemma 21.3

For any integer j 1, we have A2(j) = 2j 1(j 1) - 1.

Proof We first use induction on i to show that . For the base case, we have . For the inductive step, assume that . Then . Finally, we note that .

Now we can see how quickly Ak(j) grows by simply examining Ak (1) for levels k = 0, 1, 2, 3, 4. From the definition of A0(k) and the above lemmas, we have A0(1) = 1 1 = 2, A1(1) = 2 · 1 1 = 3, and A2(1) = 21 1 · (1 1) - 1 = 7. We also have

A3(1) =
  = A2(A2(1))
  = A2(7)
  = 28 · 8 - 1
  = 211 - 1
  = 2047

and

 

 

 

 

 

 

A4(1) =
  = A3(A3(1))
  = A3(2047)
  =
  A2(2047)
  = 12048· 2048 - 1
  > 22048
  = (24)512
  = 16512
  1080,