Kezdőoldal » Számítástechnika » Programozás » Ha egy implementáció során...

Ha egy implementáció során iteráció és rekurzió közül kell választanotok, melyiket választjátok?

Figyelt kérdés
Melyik az optimális(abb)?
2017. jan. 20. 19:04
1 2
 1/16 anonim ***** válasza:
100%
Hat az feladattol fugg :)
2017. jan. 20. 19:07
Hasznos számodra ez a válasz?
 2/16 anonim ***** válasza:
8%
Lásd az előttem szólót.
2017. jan. 20. 19:08
Hasznos számodra ez a válasz?
 3/16 A kérdező kommentje:

Például faktoriális számításnál:


int faktorialis (int n)

{

if (n<=1) {return 1;}

return n*faktorialis(n-1);

}


Vagy ez?


int faktorialis (int n)

{

int eredmeny = 1;

int i = 2;

while(i <= n) {

eredmeny = eredmeny*i;

i++;

}

return eredmeny;

}

2017. jan. 20. 19:15
 4/16 anonim ***** válasza:
Az első elegánsabb a második gyorsabb.
2017. jan. 20. 19:27
Hasznos számodra ez a válasz?
 5/16 anonim ***** válasza:
0%

"Az első elegánsabb a második gyorsabb."


És memóriaigényesebb, mármint az első.

De én is az elsőt javasolnám. Erőforrás van, ha n < végtelen akkor nincs gond és a kód is olvashatóbb.

2017. jan. 20. 19:39
Hasznos számodra ez a válasz?
 6/16 anonim ***** válasza:
A rekurzió általában elegánsabbá teszi a kódot, viszont ha egy feladatot meg tudsz oldani iteratívan megközelítőleg azonos műveletigénnyel, akkor célszerűbb azt választani. A rekurzió gyengéje a függvényhívások stackelődése, ami kellően magas szintű rekurzió esetén akár a stack túlcsordulását is okozhatja.
2017. jan. 20. 20:38
Hasznos számodra ez a válasz?
 7/16 anonim ***** válasza:

Mindig ki kell számolni/mérni mivel mennyi műveletet és memóriát spórolsz! Illetve belevenni, hogy a memóriafoglalás általában költségesebb.

Szóval nincs általános elv. Van ahol a rekurzió ezerszer gyorsabb, van ahol az iteráció ezerszer gyorsabb.

2017. jan. 20. 20:48
Hasznos számodra ez a válasz?
 8/16 anonim ***** válasza:
Ennél a példánál tökmindegy, Clang és a GCC is optimalizálják, ugyan annyi idő alatt fut le mindkét implementáció.
2017. jan. 20. 21:18
Hasznos számodra ez a válasz?
 9/16 anonim ***** válasza:
Annyiban nem mindegy, hogy a rekurzív megoldás fölösleges memóriaterhelést hoz a képletbe.
2017. jan. 20. 21:25
Hasznos számodra ez a válasz?
 10/16 anonim ***** válasza:
0%

"és a GCC is optimalizálják"


GCC O0-nál is optimalizálta? Próbáltad?

2017. jan. 20. 21:27
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, 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!