Różnica między rekurencją a iteracją

Kluczowa różnica: W programowaniu rekurencję można wyjaśnić, biorąc pod uwagę funkcję rekursywną. Funkcja rekursywna to taka, która ponownie wywołuje się, aby powtórzyć kod. Z drugiej strony, iterację uzyskuje się za pomocą funkcji iteracyjnej, która wykonuje pętle, aby powtórzyć część kodu.

W programowaniu zarówno rekurencja, jak i iteracja są używane do uzyskania powtórzeń. Odnoszą się do procesu, który powtarza się wiele razy. Rekursja opiera się na podejściu, w którym coś odnosi się do siebie, dopóki warunek nie zostanie spełniony. Mówi się, że metoda jest rekursywna, jeśli może się nazywać bezpośrednio lub pośrednio -

void name ()

{

... Nazwa() ...

}

lub

void name ()

{

... gra() ...

}

void game () {

... Nazwa() ...

}

Aby uzyskać pomyślną rekursję, należy pamiętać, że każde wywołanie w procesie rekursji musi uprościć obliczenia. Rekursję osiąga się przez zdefiniowanie przypadku podstawowego.

int factorial (int N)

{

jeśli (N == 0) zwraca 1;

else return (N * silnia (N-1));

}

W tym przykładzie rekursja może być łatwo widoczna w instrukcji (N * silnia (N-1)), gdzie ponownie wywołuje funkcję silni. Rekurencja jest bardzo pomocna, ponieważ pomaga skrócić kod. Jednak rekursja jest nieco powolna w działaniu.

Iteracja oparta jest na pętlach. Te pętle odnoszą się do jawnych procesów iteracyjnych. Aby spełnić wymóg pętli, musi mieć pewne kryteria, które zatrzymają dalszą iterację. Jeśli jednak test warunkowania pętli nigdy nie stanie się fałszywy, wówczas w tym stanie wystąpienie nieskończonej pętli jest nieuniknione. W tym przykładzie silnia jest określana przy użyciu procesu iteracji -

funkcja funkcji (n)

{

pętla var, wynik;

wynik = 1;

for (loop = 1; loop <= n; loop ++)

{

wynik = wynik * pętla;

}

wynik zwrotu;

}

W tym przykładzie pętlę uzyskuje się za pomocą liczb całkowitych od 1 do n, a instrukcja pętli <= n jest używana jako kryterium zatrzymania dalszej pętli. Możemy zatem stwierdzić, że te same wyniki można osiągnąć, stosując rekursję i iterację. Jednak oba opierają się na podejściach, które są nieco inne. Każdy algorytm rekursywny można również zapisać za pomocą iteracji (pętli).

Porównanie rekurencji i iteracji:

Rekursja

Iteracja

Definicja

Rekursja odnosi się do funkcji rekursywnej, w której ponownie wywołuje się, aby powtórzyć kod.

Iterację uzyskuje się za pomocą funkcji iteracyjnej, która wykonuje pętle w celu powtórzenia części sekcji kodu.

Ważny punkt

Należy ustalić podstawowy przypadek

Konieczne jest określenie warunku zakończenia

Wydajność

Stosunkowo wolny

Stosunkowo szybko

Zużycie pamięci

Stosunkowo więcej

Stosunkowo mniej

Kod

Mniejszy

Dłużej

Nieskończone powtórzenia

Nieskończona rekurencja może spowodować awarię systemu

Nieskończone zapętlanie powoduje wielokrotne cykle procesora

Struktura

Wybór

Powtórzenie

Zmienne lokalne

Nie wymagane

wymagany

Zalecane

Podobne Artykuły

  • popularne porównania: Różnica między mosiądzem i brązem

    Różnica między mosiądzem i brązem

    Kluczowa różnica: mosiądz jest stopem miedzi i cynku. Brąz to stop miedzi i cyny. Miedź jest powszechnym rodzajem metalu ziemskiego; jest jednak bardzo miękki w większości zastosowań. Tak więc inne metale są łączone z miedzią, aby nadać jej inne właściwości. Zarówno mosiądz, jak i brąz są takimi stopami miedzi. Mosiądz jest stopem
  • popularne porównania: Różnica między Kappa i Nupe

    Różnica między Kappa i Nupe

    Kluczowa różnica: Termin Kappa jest skróconą formą nazwy wspólnoty Kappa Alpha Psi. Członek frakcji Kappa Alpha Psi jest znany jako Kappa lub Nupe. Pojęcia Kappa i Nupe nie są dobrze znane komuś spoza sceny bractwa kolegialnego. Kappa i Nupe są terminami związanymi z bractwem Kappa Alpha Psi. Kappa Alph
  • popularne porównania: Różnica między LG Optimus L7 II Dual i Samsung Galaxy Grand

    Różnica między LG Optimus L7 II Dual i Samsung Galaxy Grand

    Kluczowa różnica: LG Optimus L7 II Dual to telefon w segmencie średniego segmentu od LG. Telefon to telefon z dwiema kartami SIM. Urządzenie ma 4, 3-calowy ekran IPS LCD, pojemnościowy ekran dotykowy o rozdzielczości 480 x 800 pikseli. Działa na platformie Android v 4.1.2 (JellyBean), która jest wspierana dwurdzeniowym procesorem Qualcomm MSM8225 Snapdragon o szybkości 1, 0 GHz i 768 MB pamięci RAM. Samsung
  • popularne porównania: Różnica między białą cebulą a żółtą cebulą

    Różnica między białą cebulą a żółtą cebulą

    Kluczowa różnica: biała cebula ma biały lub prawie biały kolor, w porównaniu do żółtej cebuli, która ma żółty, złoty lub brązowy kolor. Biała cebula ma niską zawartość siarki i jest łagodna w smaku i zapachu, podczas gdy żółta cebula ma wyższą zawartość siarki, dzięki czemu jest silniejsza w smaku i zapachu. Biała cebula ma wyższą zaw
  • popularne porównania: Różnica między pamięcią a pamięcią

    Różnica między pamięcią a pamięcią

    Kluczowa różnica: W terminologii komputerów pamięć lub pamięć odnosi się do komponentów komputera i nośników zapisu, które służą do przechowywania i przechowywania informacji cyfrowych. Technicznie nie ma różnicy między tymi dwoma terminami. Jednak w ogólnym użyciu pamięć oznacza dyski twarde, a pamięć odnosi się do pamięci RAM (Random Access Memory). Z technicznego punktu wi
  • popularne porównania: Różnica między Clay Court i Grass Court

    Różnica między Clay Court i Grass Court

    Kluczowa różnica: Tenis jest rozgrywany głównie na czterech kortach; gliniane sądy i trawa należą do nich. Jak sama nazwa wskazuje, gliniany dwór składa się z gliny, natomiast kort trawiasty składa się z trawy. Zgodnie z Wikipedią: "Kort ziemny to jeden z czterech rodzajów kortów tenisowych. Sądy z gliny
  • popularne porównania: Różnica między liposukcją a lipolizą

    Różnica między liposukcją a lipolizą

    Kluczowa różnica: Terminy liposukcja i lipoliza są terminami związanymi z otyłością. Liposukcja to operacja przeprowadzana w celu usunięcia dodatkowego tłuszczu, podczas gdy; Lipoliza jest metodą hydrolizy lipidów. Liposukcja to operacja medyczna; ewoluuje praca z końca lat 60. z Europy. Wynalazek współczesnej procedury liposukcji związany jest z nazwiskiem dwóch włoskich ginekologów, Arpad i Giorgio Fischer, którzy w 1974 roku stworzyli metodę stępionych tuneli. Liposukcja to opera
  • popularne porównania: Różnica między trapezem a równoległobokiem

    Różnica między trapezem a równoległobokiem

    Kluczowa różnica: trapez ma kształt czworoboku i ma co najmniej jedną parę równoległych boków. Liczba ta jest powszechnie znana jako trapez. Równoległobok to czworobok mający dwie pary równoległych boków. Słowa trapez i równoległobok są powszechnie spotykane w matematyce i geometrii. Terminy te odnos
  • popularne porównania: Różnica między Deja vu a Dreams

    Różnica między Deja vu a Dreams

    Kluczowa różnica : Znacząca różnica między uczuciem Déjà vu a snem polega na tym, że pierwsze ma miejsce, gdy dana osoba znajduje się w stanie świadomości, podczas gdy druga najczęściej ma miejsce, gdy dana osoba śpi lub znajduje się w nieświadomym stanie umysłu. Ludzki umysł był intrygującym tematem już od dawnych czasów. Wielu filozofów i psy

Wybór Redakcji

Różnica między resetem fabrycznym a wysokim resetem

Kluczowa różnica: dwa terminy: fabryka i twardy reset są powiązane z ustawieniami. Resetowanie do ustawień fabrycznych dotyczy ponownego uruchomienia całego systemu, podczas gdy twarde resetowanie odnosi się do resetowania dowolnego sprzętu w systemie. Wikipedia stwierdza, że ​​"przywrócenie do ustawień fabrycznych lub główny reset to pełne przywrócenie urządzenia elektronicznego do jego ustawień fabrycznych." Przywracanie