Hva er forskjellen mellom rekursjon og loop

De hovedforskjell mellom rekursjon og sløyfe er det rekursjon er en mekanisme for å ringe en funksjon i samme funksjon mens sløyfen er en kontrollstruktur som bidrar til å utføre et sett med instruksjoner om og om igjen til den gitte tilstanden er sant.

Rekursjon og sløyfe er to programmeringskonsepter. Begge disse teknikkene bidrar til å utvikle små til komplekse programmer.

Nøkkelområder dekket

1. Hva er rekursjon
- Definisjon, funksjonalitet
2. Hva er Loop
- Definisjon, funksjonalitet
3. Hva er forskjellen mellom rekursjon og loop
- Sammenligning av nøkkelforskjeller

Nøkkelord

Gjør mens løp, for løp, loop, rekursjon, mens løp

Hva er rekursjon

Når en funksjon kaller seg innenfor funksjonen, kalles den rekursjon. Et eksempel på et program med rekursjon er å beregne factorial.

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

n! = 1, hvis n = 0;

Figur 1: Faktorprogram i Java

I følge det ovennevnte programmet skaper det et objekt av Factorial. Deretter kaller det metoden faktorial ved å bruke det objektet. Og metoden får verdien 4. Deretter kjøres delen ellers. Etter det kaller det faktorial (3). Deretter utfører ellers delen. Det kaller factorial (2). Deretter kjører ellers delen. Den kaller factorial (1), og den andre delen utfører igjen. Det kaller factorial (0). Nå er n 0. Den returnerer 1. Endelig returneres 1x2x3x4 = 24, og verdiene vises på skjermen. På samme måte kaller en faktorial funksjon seg igjen og igjen.

Hva er Loop

Noen ganger er det nødvendig å utføre en blokk med kode gjentatte ganger. Programmeringsspråk gir en kontrollstruktur som kalles loop for å utføre et sett med instruksjoner. Loop utfører en uttalelse inne i blokken en etter den andre. Det er tre typer looper som mens sløyfe, for sløyfe og gjør mens sløyfe. Dessuten an køyring refererer også til en sløyfe.

Mens Loop

En stundsløyfe inneholder et testuttrykk. Hvis uttrykket er sant, utfører uttalelsene i løpet av løpet. På slutten av uttalelsene kontrollerer den testuttrykket på nytt. Da gjentas denne prosessen til testuttrykket blir falskt. Når testuttrykket er ukorrekt, avsluttes samtidig sløyfen. Deretter går kontrollen til den første setningen etter mens løkken er i gang.

Figur 2: Program med mellomløp

I det ovennevnte programmet er x 5. Det er mindre enn 10. Derfor vil det skrive ut. Så øker x-verdien. Nå er x 6. Det er også mindre enn 10; dermed vil den skrive ut. Så igjen øker x-verdien. Nå er x 7. Denne prosessen gjentar derfor. Når x er 10, er tilstanden feil, og sløyfen slutter.

For Loop

For sløyfe inneholder initialisering, testuttrykk og oppdatering. Initialiseringsuttrykket utføres en gang. Deretter vurderer det testuttrykket. Hvis det er sant, utfører uttalelsene innsiden av sløyfen. På slutten av løkken evaluerer den det oppdaterte uttrykket. Dermed gjentas denne prosessen til testuttrykket er ukorrekt. Når det er feil, avslutter sløyfen. Deretter går kontrollen til neste setning etter løkke.

Figur 3: Program med forløp

I det ovenfor for loop er x-verdien 1. Den er mindre enn 5. Så vil verdien bli skrevet ut. Da øker x-verdien med 1. Nå er x-verdien 2. Den er også mindre enn 5. Derfor vil den skrive ut. Så igjen øker x-verdien med 1. Nå er x 3. Denne prosessen gjentar. Når x er 6, blir testtilstanden feil, og sløyfen slutter.

Gjør mens du går

Gjør mens sløyfen ligner mens sløyfen er, men det kontrollerer tilstanden etter å ha gjennomført sløyfeangivelsene. Derfor, om tilstanden er sann eller falsk, utføres løkken minst en gang. Her skjer kontroll av tilstanden etter at løkken utfører. Hvis tilstanden er sant, vil loop-setningene utføres igjen. Denne prosessen gjentas til tilstanden blir feil.

Figur 4: Program med å gjøre mens du går

X-verdien er i utgangspunktet 5. Utfør mens løkken utfører og skriver ut verdien 5. Da blir x 6. Det er mindre enn 10. Så vil 6 skrive ut. Neste blir x 7. Det er også mindre enn 10. Og denne prosessen gjentar. Når x er 9, skrives verdien. Men når x blir 10, blir tilstanden feil. Derfor avslutter sløyfen.

For eksempel, anta at x er i utgangspunktet 20. Det vil skrive ut 20. Deretter øker x, og x blir 21. Testtilstanden er feil. Derfor vil det avslutte sløyfen. Verdien 20 er høyere enn 10, og testtilstanden er feil. Men løkken utfører en gang. Derfor, gjør mens løkken utfører minst en gang.

Forskjellen mellom rekursjon og loop

Definisjon

Rekursjon er en metode for å kalle en funksjon innenfor samme funksjon. I kontrast er sløyfe en kontrollstruktur som gjør det mulig å utføre en blokk med kode gjentatte ganger innenfor programmet. Disse definisjonene inneholder den grunnleggende forskjellen mellom rekursjon og sløyfe.

Hastighet

Hastighet er en stor forskjell mellom rekursjon og sløyfe. Rekursjonen er langsommere. Løkken utfører imidlertid raskere enn rekursjon.

Stable

Ved rekursjon brukes stakken til å lagre de lokale variablene når funksjonen kalles. Men sløyfen bruker ikke stabelen.

Tilstand

Hvis det ikke er noen oppsigelsestilstand, kan det være en uendelig rekursjon. Men hvis tilstanden aldri blir falsk, blir det en uendelig sløyfe. Dette er en annen forskjell mellom rekursjon og sløyfe.

Plass kompleksitet

Videre er romkompleksiteten til rekursivt program høyere enn en loop.

Kode Lesbarhet

En annen forskjell mellom rekursjon og sløyfe er at et program med rekursjon er mer lesbart enn et program med sløyfer.

Konklusjon

Forskjellen mellom rekursjon og sløyfe er at rekursjon er en mekanisme for å kalle en funksjon i samme funksjon, mens sløyfen er en kontrollstruktur som gjør det mulig å utføre et sett med instruksjoner om og om igjen til den oppgitte tilstanden er sant.

Henvisning:

1. "Rekursjon (Datavitenskap)." Wikipedia, Wikimedia Foundation, 12. september 2018, Tilgjengelig her.
2. "Java Loop Control." Www.tutorialspoint.com, tilgjengelig her.