Kezdőoldal » Számítástechnika » Programozás » Mért rossz a rekurzió?

Mért rossz a rekurzió?

Figyelt kérdés

Mért ne használjunk rekurziót?


Alacsony szintű programnyelveknél.


2022. júl. 11. 09:51
 1/5 anonim ***** válasza:
93%

Több helyet foglal a stacken, mert minden híváskor oda kerülnek a lokális változók. így könnyebben előfordulhat stack owerflow. Illetve lassabb is lehet, mint egy itaratív megoldás.

Persze nem minden rekurzív hívás "rossz", néha a fordító simán optimalizálja és ami látszólag rekurzív kód, az nem lesz az. Keress rá pl a tail-recursion optimization-ra.

2022. júl. 11. 10:04
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:
Tehát az iteratív binary search jobb, mint a rekurzív?
2022. júl. 11. 10:35
 3/5 anonim ***** válasza:
78%

Igen, kevesebb a tárhely igénye.

A rekurzív megoldásnak O(log N) tárhely kell, míg az iteratívnak csak O(1).


Nyilván mindjkettő csak akkor jó, ha helyes eredményt ad.

2022. júl. 11. 11:30
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:
100%
Egyáltalán nem "rossz", csak tudatosan kell használni. Például a fa bejárásnál tipikusan használatos, de oda kell figyelni, milyen változóknak kell stack-en lenniük, és mi lehet pl. static. Nem mindig egyértelmű, hogy a rekurzív algoritmus több memóriát foglal, pl. attól is függ, hogy néz ki pontosan az adatstruktúra. (Egyirányú dinamikus lista, tömb, különálló tömbök pointer-listája, stb.)
2022. júl. 11. 18:32
Hasznos számodra ez a válasz?
 5/5 anonim ***** válasza:
17%

"Nem mindig egyértelmű, hogy a rekurzív algoritmus több memóriát foglal"


De, ez mindig egyértelmű, hiszen a rekurzív hívásnál legalább a visszatérési címet el kell tárolni. Ilyenre iteráció esetén nincs szükség.

2022. júl. 11. 20:26
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!