Złożoność kodu C++




biniu32130.01.2009 20:09:45
#
Dołączył: 30.01.2009

Witam czy ktoś mógłby udowodnić (czyli obliczyć linijka po linijce), że złożoność poniższego kodu wynosi O(n)?? Jest to ciąg Fibonacciego. Dzięki z góry za pomoc!! Na uczelnie potrzebuje. Pozdrawiam!!!!!

int Fib(int n) { int k, f0, f1, f2; k = 0; f0 = 1; f1 = 1;

while (k != n) { k = k + 1; f2 = f0 + f1; f0 = f1; f1 = f2; }; return f0; };

proton03.02.2009 11:43:53
#
Dołączył: 31.07.2005

ej no - przeciez to widac :)

[c] int Fib(int n) { int k, f0, f1, f2; k = 0; f0 = 1; f1 = 1; // wszystko powyzej to operacje w stalym czasie - zalozmy C1 while (k != n) // tutaj mamy petle ktora przechodzi od 0 do n, wiec wykona sie n razy { k = k + 1; // przypisania i dodawania ponizej to tez koszt staly - zalozmy C2 f2 = f0 + f1; f0 = f1; f1 = f2; }; return f0; }; [/c]

przy przebieganiu przez kolejne elementy czas wykonania bedzie wiec zalezal tylko od tego do jakiej wartosci ma dojsc 'k', czyli bedzie zalezec od 'n' i dokladniej bedzie wynosil:

C1 + C2*n




Kontakt

Jeśli chcesz się z nami skontaktować napisz na adres: info(at)binboy.org lub odwiedź nasz profil na Facebooku!

O Nas

Serwis binboy.org to kopalnia wiedzy dla wszystkich z branży IT, w szczególności dla programistów i webmasterów. To duży zbiór kursów programowania, tutoriali, darmowych ebooków, setki kodów źródłowych itp.

Bądź w kontakcie

Panel użytkownika

Zaloguj się do panelu użytkownika.
Nie masz konta? Zarejestruj się!
Zapomniałeś hasła?