Złożoność kodu C++
| biniu321 | 30.01.2009 20:09:45 | |
![]() | 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; }; | |
| proton | 03.02.2009 11:43:53 | |
![]() | 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 | |

