Forskjellen Mellom Rekursjon Og Iterasjon

Innholdsfortegnelse:

Forskjellen Mellom Rekursjon Og Iterasjon
Forskjellen Mellom Rekursjon Og Iterasjon

Video: Forskjellen Mellom Rekursjon Og Iterasjon

Video: Forskjellen Mellom Rekursjon Og Iterasjon
Video: Loop Invariant Proofs (proofs, part 1) 2024, November
Anonim

Nøkkelforskjell - Rekursjon vs Iterasjon

Rekursjon og Iterasjon kan brukes til å løse programmeringsproblemer. Tilnærmingen til å løse problemet ved hjelp av rekursjon eller iterasjon avhenger av måten å løse problemet på. Hovedforskjellen mellom rekursjon og iterasjon er at rekursjon er en mekanisme for å kalle en funksjon innenfor samme funksjon mens iterasjon er å utføre et sett med instruksjoner gjentatte ganger til den gitte tilstanden er oppfylt. Rekursjon og Iterasjon er viktige teknikker for å utvikle algoritmer og bygge programvareapplikasjoner.

INNHOLD

1. Oversikt og nøkkelforskjell

2. Hva er rekursjon

3. Hva er iterasjon

4. Likheter mellom rekursjon og iterasjon

5. Sammenligning side om side - Rekursjon vs itering i tabellform

6. Sammendrag

Hva er rekursjon?

Når en funksjon kaller seg innenfor funksjonen, er den kjent som Rekursjon. Det er to typer rekursjon. De er endelig rekursjon og uendelig rekursjon. Endelig rekursjon har en avsluttende tilstand. Uendelig rekursjon har ikke en avsluttende tilstand.

Rekursjon kan forklares ved hjelp av programmet for å beregne fakta.

n! = n * (n-1) !, hvis n> 0

n! = 1, hvis n = 0;

Henvis til nedenfor-koden for å beregne faktoren på 3 (3! = 3 * 2 * 1).

intmain () {

int-verdi = faktor (3);

printf ("Faktor er% d / n", verdi);

retur 0;

}

intakt (intn) {

hvis (n == 0) {

retur 1;

}

annet {

retur n * faktor (n-1);

}

}

Når du ringer til faktor (3), vil den funksjonen kalle faktor (2). Når du ringer til faktor (2), vil den funksjonen kalle faktor (1). Da vil faktor (1) kalle faktor (0). factorial (0) vil returnere 1. I det ovennevnte programmet er n == 0 betingelse i “if block” grunntilstanden. I følge Likewise kalles faktorfunksjonen igjen og igjen.

Rekursive funksjoner er relatert til stakken. I C kan hovedprogrammet ha mange funksjoner. Så, main () er anropsfunksjonen, og funksjonen som kalles av hovedprogrammet er den kallte funksjonen. Når funksjonen kalles, blir kontrollen gitt til den kallte funksjonen. Etter at funksjonen er fullført, blir kontrollen returnert til hoved. Så fortsetter hovedprogrammet. Så det oppretter en aktiveringspost eller en stabelramme for å fortsette kjøringen.

Forskjellen mellom rekursjon og iterasjon
Forskjellen mellom rekursjon og iterasjon

Figur 01: Rekursjon

I det ovennevnte programmet oppretter det en aktiveringsregistrering i anropsstakken når du ringer til faktoriell (3) fra hoved. Deretter opprettes faktoriell (2) stabelramme på toppen av bunken og så videre. Aktiveringsposten holder informasjon om lokale variabler osv. Hver gang funksjonen kalles, opprettes et nytt sett med lokale variabler øverst i bunken. Disse rammene kan redusere hastigheten. Likeledes i rekursjon kaller en funksjon seg selv. Tidskompleksitet for en rekursiv funksjon blir funnet ved antall ganger, funksjonen kalles. Tidskompleksitet for en funksjonsanrop er O (1). For n antall rekursive samtaler er tidskompleksiteten O (n).

Hva er Iterasjon?

Iterasjon er en blokk med instruksjoner som gjentas igjen og igjen til den gitte tilstanden er sann. Iterasjon kan oppnås ved å bruke "for loop", "do-while loop" eller "while loop". "For loop" syntaksen er som følger.

for (initialisering; tilstand; endre) {

// uttalelser;

}

Hovedforskjellen mellom rekursjon og iterasjon
Hovedforskjellen mellom rekursjon og iterasjon

Figur 02: “for sløyfediagram”

Initialiseringstrinnet utføres først. Dette trinnet er å erklære og initialisere loopkontrollvariabler. Hvis tilstanden er oppfylt, utføres påstandene i krøllene. Disse uttalelsene utføres til tilstanden er oppfylt. Hvis tilstanden er falsk, går kontrollen til neste setning etter "for loop". Etter å ha utført uttalelsene inne i løkken, går kontrollen til å endre seksjonen. Det er å oppdatere loop-kontrollvariabelen. Deretter blir tilstanden sjekket igjen. Hvis tilstanden er oppfylt, vil utsagnene i de krøllete selene utføres. På denne måten gjentas "for loop".

I "while loop" utføres utsagnene i loop til tilstanden er oppfylt.

mens (tilstand) {

// uttalelser

}

I "gjør-mens" -sløyfe blir tilstanden sjekket på slutten av sløyfen. Så løkken utføres minst en gang.

gjøre{

// uttalelser

} mens (tilstand)

Programmet for å finne faktoren til 3 (3!) Ved hjelp av iterasjon ("for loop") er som følger.

int main () {

intn = 3, faktor = 1;

inti;

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

faktoria = faktoria * i;

}

printf (“Faktor er% d / n”, faktor);

retur 0;

}

Hva er likhetene mellom rekursjon og iterasjon?

  • Begge er teknikker for å løse et problem.
  • Oppgaven kan løses enten i rekursjon eller iterasjon.

Hva er forskjellen mellom rekursjon og iterasjon?

Diff Article Midt før tabell

Rekursjon vs Iterasjon

Rekursjon er en metode for å kalle en funksjon innenfor samme funksjon. Iterasjon er en blokk med instruksjoner som gjentas til den gitte tilstanden er oppfylt.
Romkompleksitet
Plasskompleksiteten til rekursive programmer er høyere enn gjentakelser. Romkompleksitet er lavere i iterasjoner.
Hastighet
Rekursjonskjøring er treg. Normalt er iterasjon raskere enn rekursjon.
Betingelse
Hvis det ikke er noen avslutningsbetingelser, kan det være en uendelig rekursjon. Hvis tilstanden aldri blir falsk, vil det være en uendelig iterasjon.
Stable
I rekursjon brukes stakken til å lagre lokale variabler når funksjonen kalles. I en iterasjon brukes ikke stakken.
Kodelesbarhet
Et rekursivt program er mer lesbart. Det iterative programmet er vanskeligere å lese enn et rekursivt program.

Sammendrag - Rekursjon vs Iterasjon

Denne artikkelen diskuterte forskjellen mellom rekursjon og iterasjon. Begge kan brukes til å løse programmeringsproblemer. Forskjellen mellom rekursjon og iterasjon er at rekursjon er en mekanisme for å kalle en funksjon innenfor samme funksjon og iterasjon for å utføre et sett med instruksjoner gjentatte ganger til den gitte tilstanden er oppfylt. Hvis et problem kan løses i rekursiv form, kan det også løses ved hjelp av iterasjoner.

Last ned PDF-versjonen av Recursion vs Iteration

Du kan laste ned PDF-versjonen av denne artikkelen og bruke den til frakoblede formål som angitt i en henvisning. Vennligst last ned PDF-versjon her Forskjellen mellom rekursjon og iterasjon

Anbefalt: