Junior — Middle
Ako rozlíšiť použitie rekurzívnych volaní od iteratívnych cyklov v programovaní?
sobes.tech AI
Odpoveď od AI
Rekurzívne volania nastávajú, keď funkcia volá sama seba na vyriešenie podúlohy, zvyčajne s upraveným argumentom, a má základný prípad na zastavenie. Iteratívne slučky používajú konštrukcie ako for alebo while na opakovanie bloku kódu.
Rozdiely:
- Rekurzia je vhodná pre úlohy, ktoré sa prirodzene delia na podúlohy (napríklad prechádzanie stromom).
- Iterácia je zvyčajne efektívnejšia z hľadiska pamäte, pretože nevyžaduje ďalšie volania zásobníka.
Príklad faktoriálu:
Rekurzia:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
Iterácia:
def factorial(n):
result = 1
for i in range(1, n+1):
result *= i
return result