[Algorytmy] Zlozonosc obliczeniowa algorytmu

sinnervo
Użytkownik
Użytkownik
Posty: 29
Rejestracja: 19 lis 2011, o 20:57
Płeć: Mężczyzna
Lokalizacja: Poznań
Podziękował: 14 razy

[Algorytmy] Zlozonosc obliczeniowa algorytmu

Post autor: sinnervo »

Mam następujący algorytm:

Kod: Zaznacz cały

void Szukaj(Drzewo *drzewo, int x)
{
  if(drzewo != NULL) {
    if(x < drzewo->wartosc)
      Szukaj(drzewo->lewy, wartosc);
    else
      if(x > drzewo->wartosc)
	Szukaj(drzewo->prawy, x);
      else {
	/* x znalezione */
	printf("%d
", x);
	return;
      }
  } else {
    printf("Nie znalezione.
");
    return;
  }
}
Probuje oszacowac jego zlozonosc obliczeniowa. Aby to zrobic chce zapisac funkcje zlozonosci praktycznej.
\(\displaystyle{ T(n)=T(n/2)+\Theta(1)}\)

Czy do tego etapu zostalo to prawidlowo zapisane?

Nie wiem co zrobic dalej. Wiem, ze funkcja zlozonosci bedzie zawierac logarytm o podstawie 2. Nie rozumiem jednak dlaczego i byloby fajnie gdyby ktos zechcial to wyjasnic.

Pozdrawiam,
Ostatnio zmieniony 1 sty 2012, o 19:33 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
ODPOWIEDZ