Złożoność obliczeniowa algorytmu

Zadanie 4a. W posortowanej rosnąco tablicy $data znajdź pozycję (indeks) podanej liczby (np. 40) stosując wyszukiwanie binarne i funkcję rekurencyjną. Jeśli szukana liczba nie znajduje się w tablicy, to należy zwócić liczbę -1.
$dane = Array
(
    [0] => 3
    [1] => 4
    [2] => 12
    [3] => 13
    [4] => 14
    [5] => 19
    [6] => 25
    [7] => 27
    [8] => 31
    [9] => 32
    [10] => 40
    [11] => 49
    [12] => 50
    [13] => 51
    [14] => 55
    [15] => 100
)

$licznik = 0;

function szukaj($l, $p, $szukana, $dane) {
  global $licznik;
  $licznik++;
  if($l > $p) return -1;
  $sr = floor(($l + $p) / 2);
  if($szukana == $dane[$sr]) return $sr;
  if($szukana < $dane[$sr])
    return szukaj($l, $sr - 1, $szukana, $dane); //przeszukujemy lewą część tablicy
  else
    return szukaj($sr + 1, $p, $szukana, $dane); //przeszukujemy prawą część tablicy
}

echo 'Liczba elementów w tablicy: ' . count($dane) . "\n";
echo 'Szukam 40, indeks: ' . szukaj(0, count($dane) - 1, 40, $dane) . ', liczba wywołań funkcji rekurencyjnej: ' . $licznik;
echo "\n";
echo 'Szukam 5, indeks: ' . szukaj(0, count($dane) - 1, 5, $dane) . ', liczba liczba wywołań funkcji rekurencyjnej: ' . $licznik;

Liczba elementów w tablicy: 16 Szukam 40, indeks: 10, liczba wywołań funkcji rekurencyjnej: 4 Szukam 5, indeks: -1, liczba liczba wywołań funkcji rekurencyjnej: 9
Złożoność obliczeniowa algorytmu O(log n).