Archivio

Archive for agosto 2010

La tecnica della ricorsione in Java

Translate in English with Google Translate
Introduzione
La ricorsione è una tecnica di programmazione per eseguire operazioni che direttamente o indirettamente richiamano se stessi.
Nella ricorsione viene invocato un metodo mentre questo è in esecuzione. Il metodo che ne faccia uso si chiama metodo ricorsivo. La ricorsione è uno strumento molto potente per realizzare alcuni algoritmi, ma è anche fonte di molti errori di difficile diagnosi. La ricorsione è connessa al principio di induzione matematica pertanto un concetto è definito in termini induttivi se è definito in termini di se stesso. La particolarità della ricorsione è nel fatto che il metodo richiama se stesso e questo comporta la sospensione del metodo chiamante in attesa del risultato del metodo chiamato.
Viene impiegata quando una prima operazione per essere completata deve eseguire una seconda operazione, questa seconda operazione a sua volta per essere completata deve eseguire una terza operazione, e cosi via. Quando un’operazione per completarsi non richiederà l’esecuzione di un’altra operazione, allora sarà possibile completare tutte le operazioni che erano rimaste in sospeso.
Si potrebbe pensare che non è possibile invocare un metodo mentre si esegue il metodo stesso!
Invece questo è lecito in Java, così come è lecito in quasi tutti i linguaggi di programmazione.
In Java la Virtual Machine alloca un diverso contesto ogni volta che viene richiamato lo stesso metodo attraverso la ricorsione. Questo comporta che le variabili sono considerate localmente a scapito della richiesta di memoria al sistema. Pertanto maggiore sarà l’annidamento e maggiore sarà la memoria usata.

Leggi tutto…

Annunci
Categorie:java, ricorsione