Złożoność obliczeniowa algorytmu

Zadanie 9. Kopiec... - sortowane tablicy $dane w porządku rosnącym.
$dane = Array
(
    [0] => 130
    [1] => 4
    [2] => 12
    [3] => 32
    [4] => 40
    [5] => 3
    [6] => 14
    [7] => 19
    [8] => 27
    [9] => 25
    [10] => 31
    [11] => 49
    [12] => 51
    [13] => 55
    [14] => 50
    [15] => 100
)

$n = count($dane);
array_unshift($dane, null); // pusty element na początku zmieni indeksy
// budowanie kopca
for($i = 2; $i <= $n; $i++) {
  $j = $i; $k = $j / 2;
  $x = $dane[$i];
  while(($k > 0) && ($dane[$k] < $x)) {
    $dane[$j] = $dane[$k];
    $j = $k; $k = $j / 2;
  }
  $dane[$j] = $x;
}
// Wyświetlenie kopca  
echo "Kopiec:<br>";
$x = ($n + 1) / 2; $k = 2;
for($i = 1; $i <= $n; $i++) {
  for($j = 1; $j <= $x - 1; $j++) echo "&nbsp;";
  echo "<span style='display: inline-block; width:50px; text-align: center;'>$dane[$i]</span>";
  for($j = 1; $j <= $x; $j++) echo "&nbsp;";
  if($i + 1 == $k) {
    $k += $k; $x /= 2; echo "<br>";
  }
}
// Rozbieranie kopca
for($i = $n; $i > 1; $i--) {
  $tmp = $dane[1]; $dane[1] = $dane[$i]; $dane[$i] = $tmp; // swap
  $j = 1; $k = 2;
  while($k < $i) {
    if(($k + 1 < $i) && ($dane[$k + 1] > $dane[$k]))
      $m = $k + 1;
    else
      $m = $k;
    if($dane[$m] <= $dane[$j]) break;
	$tmp = $dane[$j]; $dane[$j] = $dane[$m]; $dane[$m] = $tmp; // swap
    $j = $m; $k = $j + $j;
  }
}
echo "<br>Rozbieranie kopca -> posortowana tablica";
array_shift($dane);
echo "<pre>\$dane = ";
print_r($dane);
echo "</pre><hr>";

Kopiec:
       130        
   100       55    
 40   32   49   51  
27 19 25 31 3 14 12 50 
4
Rozbieranie kopca -> posortowana tablica
$dane = Array
(
    [0] => 3
    [1] => 4
    [2] => 12
    [3] => 14
    [4] => 19
    [5] => 25
    [6] => 27
    [7] => 31
    [8] => 32
    [9] => 40
    [10] => 49
    [11] => 50
    [12] => 51
    [13] => 55
    [14] => 100
    [15] => 130
)

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