Derekursywacja - Google

Derekursywacja

Z Wikipedii

Skocz do: nawigacji, szukaj

Derekursywacja - przemiana algorytmów rekurencyjnych (rekursyjnych) na iteracyjne. Stosuje się ją w celu zwiększenia szybkości działania aplikacji (korzystającej z algorytmów rekurencyjnych) oraz zmniejszenia jej zajętości pamięciowej.

[edytuj] Przykład

Bardzo dobrym przykładem derekursywacji jest wyznaczanie wartości elementu ciągu Fibonacciego. Można go wyznaczyć za pomocą rekursji (przykład w C++):

unsigned long fibonacci( unsigned long n ){
  if( n <= 1 ) return 1;
  return ( fibonacci( n - 1 ) + fibonacci( n - 2 ) );
}

Okazuje się, że jest to algorytm bardzo niewydajny. Po derekursywacji, otrzymujemy algorytm iteracyjny, który działa zdecydowanie szybciej:

typedef unsigned long TypZmiennej;
typedef double TypWyniku; // w celu "uniknięcia" przepełnienia zmiennej wynikowej

TypWyniku fibonacci( TypZmiennej n ) {
  if( n == 0 ) return 0;
  TypWyniku a = 0;
  TypWyniku b = 1;
  for( TypZmiennej i = 0 ; i < ( n -1 ) ; ++i ) {
    b = b + a;
    a = b - a; // = poprzednia wartość 'b' - nie trzeba pamiętać w osobnej zmiennej
  }
  return b;
}

ÅšWIAT 24/7
Schwytanie byłego przywódcy Serbów bośniackich Radovana Karadzicia, podróż Baracka Obamy na Bliski Wschód i do Europy oraz Komisja Europejska, która grozi USA w sprawie wiz - to najważniejsze zagraniczne tematy, o których pisaliśmy w ostatnim tygodniu w tvn24.pl.
Piraci porwali 8 obcokrajowców
W sobotni poranek piraci porwali 8 pracowników kompanii naftowej w delcie Nigru. W ciągu ostatnich 48 godzin już 16 naftowców znalazło się w rękach porywaczy.
Pijana kobieta wymusiła lądowanie samolotu
26-letnia pijana Brytyjka usiłowała wydostać się z lecącego na wysokości 10 tys. metrów samolotu. Próby otwarcia drzwi skończyły się awaryjnym lądowaniem.
Obama dziękuje Wielkiej Brytanii
Demokratyczny kandydat na prezydenta USA Barack Obama gości w sobotę w Londynie. Podczas rozmowy z Gordonem Brownem podkreślił "silne i trwałe związki" między USA i Wielką Brytanią.
Karadżić zmieniał tożsamość i podróżował po Europie
Ukrywający się przez 13 lat były przywódca bośniackich Serbów Radovan Karadżić, co najmniej sześć razy zmienił tożsamość, bywał we Włoszech pod fałszywym nazwiskiem - pisze w sobotę "Corriere della Sera", powołując się na nieoficjalne doniesienia.
Linki: Strona g³ówna