A Rekurzió és Az Iteráció Közötti Különbség

Tartalomjegyzék:

A Rekurzió és Az Iteráció Közötti Különbség
A Rekurzió és Az Iteráció Közötti Különbség
Anonim

Kulcskülönbség - Rekurzió vs iteráció

Rekurzió és iteráció használható a programozási problémák megoldására. A probléma rekurzióval vagy iterációval történő megoldásának megközelítése a probléma megoldásának módjától függ. A rekurzió és az iteráció közötti legfontosabb különbség az, hogy a rekurzió egy olyan mechanizmus, amely egy függvényt ugyanazon a függvényen belül hív meg, miközben az iteráció egy utasításkészlet ismételt végrehajtását jelenti, amíg az adott feltétel igaz. A rekurzió és az iteráció az algoritmusok fejlesztésének és a szoftveralkalmazások felépítésének fő technikája.

TARTALOM

1. Összefoglalás és Legfontosabb különbség

2. Mi rekurzió

3. Mi Iteration

4. hasonlóságok között rekurzió és iteráció

5. Egymás melletti összehasonlítás - rekurzió vs Iteration táblázatos formában

6. Összefoglalás

Mi az a rekurzió?

Amikor egy függvény behívja magát a függvényen belül, rekurziónak hívják. Kétféle rekurzió létezik. Ezek véges rekurzió és végtelen rekurzió. A véges rekurziónak végállapota van. A végtelen rekurziónak nincs befejező feltétele.

A rekurzió a program segítségével megmagyarázható a tényezők kiszámításához.

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

n! = 1, ha n = 0;

A 3-as (3! = 3 * 2 * 1) tényező kiszámításához olvassa el az alacsonyabb kódot.

intmain () {

int érték = faktoriális (3);

printf („Faktoriális% d / n”, érték);

visszatér 0;

}

intaktorial (intn) {

ha (n == 0) {

visszatér 1;

}

más {

return n * faktoriális (n-1);

}

}

A faktoriális (3) meghívásakor ez a függvény a faktoriált (2). A faktoriális (2) meghívásakor ez a függvény faktoriális (1) -et fog hívni. Ekkor az (1) faktoriális (0) tényezőt fogja hívni. a faktoriális (0) értéke 1. A fenti programban az „if block” n == 0 feltétele az alapfeltétel. A Hasonlóképpen a faktoriális függvényt hívják újra és újra.

Rekurzív funkciók kapcsolódnak a veremhez. C-ben a fő programnak sok funkciója lehet. Tehát a main () a hívó függvény, és a fő program által meghívott függvény az úgynevezett függvény. A függvény meghívásakor a vezérlés megkapja a meghívott függvényt. A függvény végrehajtásának befejezése után a vezérlő visszatér a főbe. Ezután a főprogram folytatódik. Tehát létrehoz egy aktiválási rekordot vagy egy veremkeretet a végrehajtás folytatásához.

A rekurzió és az iteráció közötti különbség
A rekurzió és az iteráció közötti különbség

01. ábra: Rekurzió

A fenti programban, amikor a faktoriált (3) meghívja a main-ból, aktiválási rekordot hoz létre a hívásveremben. Ezután faktoriális (2) veremkeret jön létre a verem tetején és így tovább. Az aktiválási rekord információkat tárol a helyi változókról stb. A függvény minden egyes meghívásakor egy új helyi változók készlete jön létre a verem tetején. Ezek a veremkeretek lassíthatják a sebességet. Ugyanígy a rekurzióban egy függvény hívja magát. A rekurzív függvény időbeli összetettségét az alkalmak száma határozza meg, a függvényt meghívják. Egy függvényhívás időbeli összetettsége O (1). N rekurzív hívás esetén az idő bonyolultsága O (n).

Mi az iteráció?

Az iteráció az utasítások blokkja, amely újra és újra megismétlődik, amíg az adott feltétel igaz. Az iteráció a „for loop”, a „do-while loop” vagy a „while loop” használatával érhető el. A „for loop” szintaxis a következő.

for (inicializálás; feltétel; módosítás) {

// állítások;

}

A rekurzió és az iteráció közötti fő különbség
A rekurzió és az iteráció közötti fő különbség

02. ábra: „hurokábrához”

Először az inicializálás lép. Ez a lépés a ciklusvezérlő változók deklarálása és inicializálása. Ha a feltétel igaz, akkor a göndör zárójelben lévő utasítások végrehajtódnak. Ezek az állítások addig teljesülnek, amíg a feltétel igaz. Ha a feltétel hamis, akkor a vezérlő a „for ciklus” után a következő utasításra lép. A cikluson belüli utasítások végrehajtása után a vezérlő a szakasz módosítására megy. A hurokvezérlő változó frissítése. Ezután újra ellenőrizzük az állapotot. Ha a feltétel igaz, akkor a göndör zárójelben lévő utasítások végrehajtásra kerülnek. Így a „for loop” iterál.

A „while ciklusban” a ciklus belsejében lévő utasítások addig teljesülnek, amíg a feltétel igaz.

while (feltétel) {

// állítások

}

A „do-while” ciklusban a ciklus végén ellenőrizzük az állapotot. Tehát a ciklus legalább egyszer végrehajtódik.

csináld

// állítások

} while (feltétel)

Program a 3 (3!) Tényezőjének megkeresésére az iteráció („for loop”) használatával a következő.

int main () {

intn = 3, faktoriális = 1;

inti;

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

faktoriális = faktoriális * i;

}

printf („Faktoriális% d / n”, faktoriális);

visszatér 0;

}

Milyen hasonlóságok vannak a rekurzió és az iteráció között?

  • Mindkettő technika a probléma megoldására.
  • A feladat megoldható rekurzióban vagy iterációban.

Mi a különbség a rekurzió és az iteráció között?

Különböző cikk a táblázat előtt

Rekurzió vs iteráció

A rekurzió egy funkció meghívása ugyanazon függvényen belül. Az iteráció az utasítások blokkja, amely addig ismétlődik, amíg az adott feltétel igaz.
Tér komplexitás
A rekurzív programok térbeli összetettsége nagyobb, mint az iterációk. A tér bonyolultsága kisebb az iterációkban.
Sebesség
A rekurzió végrehajtása lassú. Normális esetben az iteráció gyorsabb, mint a rekurzió.
Feltétel
Ha nincs felmondási feltétel, végtelen rekurzió lehet. Ha az állapot soha nem válik hamissá, akkor ez végtelen ismétlés lesz.
Kazal
Rekurzióban a verem a helyi változók tárolására szolgál, amikor a függvény meghívásra kerül. Egy iteráció során a verem nem kerül felhasználásra.
Kód olvashatóság
A rekurzív program olvashatóbb. Az iteratív program nehezebben olvasható, mint a rekurzív program.

Összegzés - Rekurzió vs iteráció

Ez a cikk a rekurzió és az iteráció közötti különbséget tárgyalta. Mindkettő felhasználható a programozási problémák megoldására. A rekurzió és az iteráció közötti különbség az, hogy a rekurzió egy olyan mechanizmus, amely egy függvényt ugyanazon a függvényen belül meghív, és az iterációt egy utasításkészlet ismételt végrehajtására hajtja végre, amíg az adott feltétel igaz. Ha egy probléma rekurzív formában megoldható, akkor iterációk segítségével is megoldható.

Töltse le a Rekurzió vs Iteráció PDF-verzióját

A cikk PDF-verzióját letöltheti, és offline célokra is használhatja, az idézési megjegyzés szerint. Kérjük, töltse le itt a PDF-verziót. Különbség a rekurzió és az iteráció között

Ajánlott: