Sommario:
Definizione - Cosa significa "ciclo ricorsivo"?
Si dice che si sia verificato un loop ricorsivo quando una funzione, un modulo o un'entità continua a effettuare ripetutamente chiamate a se stesso, formando così un loop quasi infinito. I costrutti ricorsivi sono utilizzati in diversi algoritmi come l'algoritmo utilizzato per risolvere il problema della Torre di Hanoi. La maggior parte dei linguaggi di programmazione implementa la ricorsione consentendo a una funzione di chiamarsi.
I loop ricorsivi sono anche conosciuti semplicemente come ricorsione.
Techopedia spiega il ciclo ricorsivo
Un ciclo ricorsivo è un tipo speciale di costrutto di ciclo in cui una particolare entità tenta di invocare se stessa all'interno del suo codice di ciclo. Pertanto l'entità continua a chiamarsi finché non viene specificata una condizione o un'interruzione specifica. I loop ricorsivi sono generalmente implementati con l'aiuto di una chiamata di funzione ricorsiva in cui una chiamata a una particolare funzione viene inserita nella definizione della funzione stessa.
I linguaggi di programmazione in grado di implementare loop ricorsivi possono risolvere i problemi che richiedono l'uso di strutture iterative come "while" e "for" semplicemente usando solo loop ricorsivi. Pertanto i loop ricorsivi possono sostituire i costrutti di loop tradizionali e talvolta sono utili per creare codice meno voluminoso. Semplifica anche il codice e aiuta a scomporre i codici complessi in semplici istruzioni.
Alcune delle più comuni applicazioni problematiche delle funzioni ricorsive includono la Torre di Hanoi, calcolo per serie per e = 1/0! +1/1! + 1/2 +…, calcolo di gcd, fattoriale e così via.
La ricorsione viene anche utilizzata nei casi in cui il programmatore non è sicuro della dimensione esatta dei dati.
La ricorsione in informatica può essere classificata nei seguenti tipi:
- Ricorsione singola
- Ricorsione multipla
- Ricorsione indiretta
- Ricorsione anonima
- Ricorsione strutturale
- Ricorsione generativa
L'uso di loop ricorsivi può influire sulle prestazioni del programma. I loop ricorsivi fanno uso di stack di memoria e quando gli stack sono pieni, il loop può terminare prima del tempo di terminazione previsto.