Razlika Između Rekurzije I Ponavljanja

Sadržaj:

Razlika Između Rekurzije I Ponavljanja
Razlika Između Rekurzije I Ponavljanja

Video: Razlika Između Rekurzije I Ponavljanja

Video: Razlika Između Rekurzije I Ponavljanja
Video: MALE KILAZE I PUNO PONAVLJANJA ZA DEFINICIJU / VELIKE KILAZE I MALO PONAVLJANJA ZA MASU 2024, Studeni
Anonim

Ključna razlika - Rekurzija vs Iteracija

Rekurzija i iteracija mogu se koristiti za rješavanje programskih problema. Pristup rješavanju problema pomoću rekurzije ili iteracije ovisi o načinu rješavanja problema. Ključna razlika između rekurzije i iteracije je u tome što je rekurzija mehanizam za pozivanje funkcije unutar iste funkcije, dok je iteracija opetovano izvršavanje niza uputa dok zadani uvjet nije istinit. Rekurzija i iteracija su glavne tehnike za razvoj algoritama i izgradnju softverskih aplikacija.

SADRŽAJ

1. Pregled i ključna razlika

2. Što je rekurzija

3. Što je iteracija

4. Sličnosti između rekurzije i iteracije

5. Usporedna usporedba - Rekurzija vs Iteracija u tabličnom obliku

6. Sažetak

Što je rekurzija?

Kada se funkcija poziva unutar funkcije, poznata je kao rekurzija. Postoje dvije vrste rekurzije. Oni su konačna rekurzija i beskonačna rekurzija. Konačna rekurzija ima završno stanje. Beskonačna rekurzija nema završno stanje.

Rekurzija se može objasniti pomoću programa za izračunavanje faktora.

n! = n * (n-1) !, ako je n> 0

n! = 1, ako je n = 0;

Pogledajte donji kod za izračun faktorijela 3 (3! = 3 * 2 * 1).

intmain () {

int vrijednost = faktorijel (3);

printf ("Faktorijal je% d / n", vrijednost);

povratak 0;

}

intfactorial (intn) {

ako (n == 0) {

povratak 1;

}

inače {

vratiti n * faktorijel (n-1);

}

}

Kada poziva faktorijel (3), ta će funkcija pozvati faktorijel (2). Kada poziva faktorijel (2), ta će funkcija pozvati faktorijel (1). Tada će faktor (1) nazvati faktor (0). faktorijel (0) vratit će 1. U gore navedenom programu n == 0 uvjet u bloku "if" osnovni je uvjet. Prema Isto tako, faktoristička se funkcija poziva iznova i iznova.

Rekurzivne funkcije povezane su s hrpom. U C, glavni program može imati mnogo funkcija. Dakle, main () je pozivna funkcija, a funkcija koju poziva glavni program je pozvana funkcija. Kada se funkcija pozove, kontrola se daje pozvanoj funkciji. Nakon završetka izvršavanja funkcije, kontrola se vraća na main. Tada se nastavlja glavni program. Dakle, stvara zapis aktivacije ili okvir steka za nastavak izvođenja.

Razlika između rekurzije i ponavljanja
Razlika između rekurzije i ponavljanja

Slika 01: Rekurzija

U gore navedenom programu, kada poziva faktorijel (3) iz glavnog, stvara zapis aktivacije u hrpi poziva. Zatim se na vrhu stoga kreira faktorni (2) okvir stoga i tako dalje. Zapis aktivacije čuva informacije o lokalnim varijablama itd. Svaki put kad se funkcija pozove, na vrhu stoga stvara se novi skup lokalnih varijabli. Ovi okviri stoga mogu usporiti ubrzanje. Isto tako u rekurziji, funkcija poziva sebe. Složenost vremena za rekurzivnu funkciju pronalazi se brojem poziva, funkcija. Složenost vremena za jedan poziv funkcije je O (1). Za n broja rekurzivnih poziva, vremenska složenost je O (n).

Što je ponavljanje?

Iteracija je blok uputa koji se ponavlja iznova i iznova dok zadani uvjet nije istinit. Iteracija se može postići korištenjem "for loop", "do-while loop" ili "while loop". Sintaksa "for loop" je sljedeća.

for (inicijalizacija; uvjet; izmijeniti) {

// izjave;

}

Ključna razlika između rekurzije i ponavljanja
Ključna razlika između rekurzije i ponavljanja

Slika 02: "za dijagram toka petlje"

Prvo se izvršava korak inicijalizacije. Ovaj korak je deklariranje i inicijalizacija kontrolnih varijabli petlje. Ako je uvjet istinit, izvršavaju se izrazi unutar kovrčavih zagrada. Te se izjave izvršavaju sve dok uvjet nije istinit. Ako je uvjet netačan, kontrola prelazi na sljedeći izraz nakon petlje "for". Nakon izvršavanja izraza unutar petlje, kontrola prelazi na odjeljak za izmjenu. To je ažuriranje kontrolne varijable petlje. Tada se stanje ponovno provjerava. Ako je uvjet istinit, izvršit će se izrazi unutar kovrčavih zagrada. Na ovaj se način ponavlja for.

U "while petlji", naredbe unutar petlje izvršavaju se sve dok uvjet nije istinit.

while (uvjet) {

// izjave

}

U petlji "do-while" stanje se provjerava na kraju petlje. Dakle, petlja se izvršava barem jednom.

čini{

// izjave

} dok (stanje)

Program za pronalaženje faktorijela 3 (3!) Pomoću iteracije (“for loop”) je sljedeći.

int main () {

intn = 3, faktorijel = 1;

inti;

za (i = 1; i <= n; i ++) {

faktorijel = faktorijel * i;

}

printf („Faktorijal je% d / n“, faktorijel);

povratak 0;

}

Koje su sličnosti između rekurzije i ponavljanja?

  • Obje su tehnike rješavanja problema.
  • Zadatak se može riješiti ili rekurzijom ili iteracijom.

Koja je razlika između rekurzije i ponavljanja?

Diff Article Sredina prije tablice

Rekurzija vs Iteracija

Rekurzija je metoda pozivanja funkcije unutar iste funkcije. Iteracija je blok uputa koji se ponavlja sve dok zadani uvjet nije istinit.
Složenost prostora
Složenost prostora rekurzivnih programa veća je od iteracija. Složenost prostora manja je u iteracijama.
Ubrzati
Izvođenje rekurzije je sporo. Obično je ponavljanje brže od rekurzije.
Stanje
Ako ne postoji uvjet prekida, može doći do beskonačne rekurzije. Ako stanje nikad ne postane lažno, bit će to beskonačna ponavljanja.
Stog
U rekurziji, stek se koristi za pohranu lokalnih varijabli kad se funkcija pozove. U iteraciji se stog ne koristi.
Čitljivost koda
Rekurzivni program je čitljiviji. Iterativni program teže je čitati od rekurzivnog.

Sažetak - Rekurzija vs Iteracija

Ovaj je članak raspravljao o razlici između rekurzije i iteracije. Obje se mogu koristiti za rješavanje programskih problema. Razlika između rekurzije i iteracije je u tome što je rekurzija mehanizam za pozivanje funkcije unutar iste funkcije i iteraciju za ponavljanje izvođenja niza uputa sve dok zadani uvjet nije istinit. Ako se problem može riješiti u rekurzivnom obliku, može se riješiti i pomoću iteracija.

Preuzmite PDF verziju Rekurzija vs Iteracija

Možete preuzeti PDF verziju ovog članka i koristiti je u izvanmrežne svrhe prema napomeni. Ovdje preuzmite PDF verziju. Razlika između rekurzije i ponavljanja

Preporučeno: