Leonardo.it I say blog!
  • 15
  • dic
  • 2008

La ricorsione in Java

Di Antonio Avolio, in Java, Programmazione.

Nel linguaggio Java ogni metodo può essere ricorsivo. Un metodo ricorsivo altro non è che un metodo che richiama se stesso. Affinché la ricorsione sia corretta e non generi cicli infiniti occorre:

  • la presenza di una condizione di terminazione, in parole povere, almeno una volta il metodo non dovrà richiamare se stesso;
  • ad ogni chiamata ricorsiva ci si avvicini alla condizione di terminazione, cioè venga effettuato un passo di ricorsione;

La ricorsione e l’iterazione sono teoricamente equivalenti, la differenza se vogliamo sta nel fatto che il più delle volte l’iterazione privilegia l’efficienza dell’esecuzione, mentre la ricorsione la semplicità di codifica.

Cerchiamo di chiarire la differenza con un esempio:


Supponiamo di voler calcolare il massimo comune divisore tra due numeri positivi x ed y, rispettivamente di valore 10 e 6. Analizziamo la soluzione iterativa:

[sourcecode language='java']
int mcd_iterativo(int x, int y){
while(true){
if(x == y || y==0){ //comprende anche il caso 0
return x;
}else if(x==0){
return y;
}else if(x > y){
x -= y;
}else{
y -= x;
}
}
}
[/sourcecode]
Si è utilizzato un cliclo while per iterare sino a che non si arriva ad una soluzione (return riga 04), utilizzando la ricorsione invece:

[sourcecode language='java']
int mcd_ricorsivo(int x, int y){
if (y==0)
return x;
else
return mcd_ricorsivo(y , x%y);
}
[/sourcecode]


Le chiamate ricorsive (return mcd_ricorsivo(y , x%y) riga 05) sono 4 e precisamente:

mcd (10,6)
mcd (6,4)
mcd (4,2)
mcd (2,0)

L’ultima chiamata ricorsiva determinerà il risultato 2.
Il codice è sicuramente più compatto.

Termini legati all'articolo: , .
Altri articoli:

Articoli correlati a "La ricorsione in Java"

  • Il comando shutdow

    Molti ignorano alcune importanti opzioni del comando shutdow. Avendo i privileggi di root possiamo lanciarlo con una serie di opzioni realmenti interessanti, vediamone qualcuna: Per effettuare il


  • JQS.Exe : Disabilitare Il Java Quick Starter

    Se aprite la Task Manager di Windows (premendo CTRL ALT CANC) potrete notare il processo jqs.exe. Jqs.exe, mentre è in funzione, usa circa 1.5 Mb


  • Ottenere le informazioni del sistema

    Java mette a disposizione un'utile classe System, contenente diversi metodi pronti all'utilizzo all'interno delle nostre applicazioni. Tra i diversi metodi, abbiamo getProperty, utile quando occorre


  • MD5 e Java

    Vedremo in questo post come codificare una frase utilizzando l'algoritmo MD5 in java,  l’operazione è resa semplice dalla presenza del package supponiamo di voler codificare


  • Le classi in Java – Parte IV – L'overloading

    Java consente l' introduzione all'interno di una classe di più metodi con ugual nome, ma con intestazione diversa, o nel numero e tipo di parametri



Commenti:

Commenta su "La ricorsione in Java"




Il network di TipOff!


Gallery

countdown flash
personalizzare homepage di google
come creare un indirizzo email
recuperare password
come usare paypal
creare cartelle preferite
trovare numero telefonico
aprire tar gzip
2494_20_Samsung-Galaxy-Tab-email
come fotografare lo schermo del computer
notifiche ricezioni email gmail