Derekursywacja: Różnice pomiędzy wersjami

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
drobne techniczne
CiaPan (dyskusja | edycje)
drobne merytoryczne
Linia 7:
'''jeżeli''' ''n'' < 2, '''to zwróć''' ''n''.
'''zwróć''' fibonacci(''n'' - 1) + fibonacci(''n'' - 2).
Nie jest on wydajny ze względu na wykładniczewykładniczą złożoności(względem wartości argumentu ''n'') złożoność czasową i liniową złożoność pamięciową. Jego derekursywacja daje algorytm iteracyjny o liniowychliniowej złożonościachzłożoności czasowej i stałej pamięciowej:
'''podprogram''' fibonacci(''n''):
'''jeżeli''' ''n'' < 2, '''to zwróć''' ''n''
Linia 16:
'''niech''' ''przedostatnia'' = ''ostatnia'' - ''przedostatnia''
'''zwróć''' ''ostatnia''
Na marginesie dodać należy, że przedstawiony powyżej algorytm nie jest jeszcze najszybszym sposobem obliczania liczb Fibonacciego, jest jednak czytelnym przykładem zysków płynących z derekursywacji.
 
[[Kategoria:Rekurencja]]