Ricorsione Java: metodi ricorsivi (con esempi)

In questo tutorial imparerai a conoscere la funzione ricorsiva di Java, i suoi vantaggi e svantaggi.

In Java, un metodo che chiama se stesso è noto come metodo ricorsivo. E questo processo è noto come ricorsione.

Un esempio del mondo fisico potrebbe essere quello di posizionare due specchi paralleli uno di fronte all'altro. Qualsiasi oggetto tra di loro verrebbe riflesso in modo ricorsivo.

Come funziona la ricorsione?

Lavorare con Java Recursion

Nell'esempio precedente, abbiamo chiamato il recurse()metodo dall'interno del mainmetodo. (normale chiamata al metodo). E, all'interno del metodo recurse (), stiamo nuovamente chiamando lo stesso metodo recurse. Questa è una chiamata ricorsiva.

Per fermare la chiamata ricorsiva, dobbiamo fornire alcune condizioni all'interno del metodo. Altrimenti, il metodo verrà chiamato all'infinito.

Quindi, usiamo l'istruzione if … else (o un approccio simile) per terminare la chiamata ricorsiva all'interno del metodo.

Esempio: fattoriale di un numero utilizzando la ricorsione

 class Factorial ( static int factorial( int n ) ( if (n != 0) // termination condition return n * factorial(n-1); // recursive call else return 1; ) public static void main(String() args) ( int number = 4, result; result = factorial(number); System.out.println(number + " factorial = " + result); ) )

Uscita :

 4 fattoriale = 24

Nell'esempio sopra, abbiamo un metodo denominato factorial(). Il factorial()è chiamato dal main()metodo. con la variabile numerica passata come argomento.

Qui, nota l'affermazione,

 return n * factorial(n-1);

Il factorial()metodo chiama se stesso. Inizialmente, il valore di n è 4 all'interno factorial(). Durante la successiva chiamata ricorsiva, 3 viene passato al factorial()metodo. Questo processo continua finché n è uguale a 0.

Quando n è uguale a 0, l' ifistruzione restituisce false, quindi viene restituito 1. Infine, il risultato accumulato viene passato al main()metodo.

Elaborazione del programma fattoriale

L'immagine sotto ti darà un'idea migliore di come viene eseguito il programma fattoriale usando la ricorsione.

Programma fattoriale che utilizza la ricorsione

Vantaggi e svantaggi della ricorsione

Quando viene effettuata una chiamata ricorsiva, nello stack vengono allocate nuove posizioni di archiviazione per le variabili. Poiché ogni chiamata ricorsiva ritorna, le vecchie variabili e parametri vengono rimossi dallo stack. Quindi, la ricorsione utilizza generalmente più memoria ed è generalmente lenta.

D'altra parte, una soluzione ricorsiva è molto più semplice e richiede meno tempo per scrivere, eseguire il debug e mantenere.

Letture consigliate: quali sono i vantaggi e gli svantaggi della ricorsione?

Articoli interessanti...