Złożoność obliczeniowa algorytmu

Zadanie 7. Wieże Hanoi...
$dane = Array
(
    [A] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [B] => Array
        (
        )

    [C] => Array
        (
        )

)

$i = 0;
function hanoi($n, $x, $y, $z) {
  global $dane, $i;
  if ($n >= 1) {
    hanoi($n - 1, $x, $z, $y);
    $i++;
    echo "$i. Przenieś jeden krążek z $x na $y \n";
    array_unshift($dane[$y], array_shift($dane[$x]));
    echo '<pre>$dane = ';
    print_r($dane);
    echo '</pre><hr>';
    hanoi($n - 1, $z, $y, $x);
  }
}

hanoi($kr, 'A', 'B', 'C');

1. Przenieś jeden krążek z A na B
$dane = Array
(
    [A] => Array
        (
            [0] => 2
            [1] => 3
        )

    [B] => Array
        (
            [0] => 1
        )

    [C] => Array
        (
        )

)

2. Przenieś jeden krążek z A na C
$dane = Array
(
    [A] => Array
        (
            [0] => 3
        )

    [B] => Array
        (
            [0] => 1
        )

    [C] => Array
        (
            [0] => 2
        )

)

3. Przenieś jeden krążek z B na C
$dane = Array
(
    [A] => Array
        (
            [0] => 3
        )

    [B] => Array
        (
        )

    [C] => Array
        (
            [0] => 1
            [1] => 2
        )

)

4. Przenieś jeden krążek z A na B
$dane = Array
(
    [A] => Array
        (
        )

    [B] => Array
        (
            [0] => 3
        )

    [C] => Array
        (
            [0] => 1
            [1] => 2
        )

)

5. Przenieś jeden krążek z C na A
$dane = Array
(
    [A] => Array
        (
            [0] => 1
        )

    [B] => Array
        (
            [0] => 3
        )

    [C] => Array
        (
            [0] => 2
        )

)

6. Przenieś jeden krążek z C na B
$dane = Array
(
    [A] => Array
        (
            [0] => 1
        )

    [B] => Array
        (
            [0] => 2
            [1] => 3
        )

    [C] => Array
        (
        )

)

7. Przenieś jeden krążek z A na B
$dane = Array
(
    [A] => Array
        (
        )

    [B] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [C] => Array
        (
        )

)

Złożoność obliczeniowa algorytmu O(2n).