[Algorytmy] Boki trójkąta - złożoność obliczeniowa czasowa

Cryer
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 9 cze 2011, o 17:52
Płeć: Mężczyzna
Lokalizacja: Polska

[Algorytmy] Boki trójkąta - złożoność obliczeniowa czasowa

Post autor: Cryer »

Witam,
mam problem z okresleniem zlozonosci czasowej algorytmu sprawdzajacego czy z kazdych n patykow da sie zbudowac trojkat, tzn. mamy n liczb (n>=3) i sprawdzamy czy z kazdej trojki liczb mozna zbudowac trojkat.

Algorytm wyglada tak:

Kod: Zaznacz cały

 for(k=0; k+2<n; k++)              
        for(j=k+1; j+1<n; j++)        
            for(i=j+1; i<n; i++) {    
                if(tab[k]<(tab[j]+tab[i]) && tab[i]<(tab[j]+tab[k]) && tab[j]<(tab[i]+tab[k])) 
              cout<<"Z patykow: "<<tab[k]<<" "<<tab[j]<<" "<<tab[i]<<" mozna stworzyc trojkat"
                else 
              cout<<"Z patykow: "<<tab[k]<<" "<<tab[j]<<" "<<tab[i]<<" nie mozna stworzyc trojkata"
             }
Nie jestem pewien czy jest to zlozonosc rzedu O(n^3), czy moze jakas wykladnicza?
Alorytm wykonuje tyle operacji ile jest 3-elementowych podzbiorow(kombinacji) w zbiorze n-elementowym.

Czy ktos moglbym jednoznacznie okreslic jaka to klasa zlozonosci? A moze ktos jest w stanie okreslic dokladna zlozonosc?

Prosze o pomoc
Pozdrawiam
Cryer
Ostatnio zmieniony 22 cze 2011, o 14:19 przez Afish, łącznie zmieniany 3 razy.
Powód: Poprawa wiadomości.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[Algorytmy] Boki trójkąta - złożoność obliczeniowa czasowa

Post autor: Afish »

Sprawdzasz każdą trójkę, trójek jest \(\displaystyle{ {n \choose 3} = \frac{n\left(n-1\right)\left(n-2\right)}{6}}\) a to jest asymptotyczne \(\displaystyle{ O(n^3)}\)
Cryer
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 9 cze 2011, o 17:52
Płeć: Mężczyzna
Lokalizacja: Polska

[Algorytmy] Boki trójkąta - złożoność obliczeniowa czasowa

Post autor: Cryer »

Swietnie, cos podobnego kombinowalem ale nie bylem pewien.
Bardzo dziekuje za pomoc
ODPOWIEDZ