Differenza chiave: nella programmazione, la ricorsione può essere spiegata considerando una funzione ricorsiva. Una funzione ricorsiva è quella che si chiama di nuovo per ripetere il codice. D'altra parte, l'iterazione è ottenuta da una funzione iterativa che esegue il loop per ripetere alcune sezioni del codice.
Nella programmazione, ricorsione e iterazione sono entrambi utilizzati per ottenere ripetizioni. Si riferiscono a un processo che viene ripetuto numerose volte. La ricorsione si basa su un approccio in cui qualcosa si riferisce a se stesso fino a quando una condizione non viene soddisfatta. Si dice che un metodo sia ricorsivo se può chiamarsi direttamente o indirettamente come -
{
... nome() ...
}
o
nome del vuoto ()
{
... gioco () ...
}
gioco void () {
... nome() ...
}
Per una ricorsione riuscita, è necessario tenere presente che ogni chiamata effettuata nel processo di ricorsione deve semplificare il calcolo. La ricorsione si ottiene definendo un caso base.
int factorial (int N)
{
se (N == 0) restituisce 1;
altro ritorno (N * fattoriale (N-1));
}
In questo esempio, la ricorsione può essere facilmente vista nell'istruzione (N * factorial (N-1)), dove chiama di nuovo la funzione fattoriale. La ricorsione è molto utile in quanto aiuta a ridurre il codice. Tuttavia, la ricorsione è un po 'lenta nelle prestazioni.
funzione fattoriale (n)
{
var loop, result;
risultato = 1;
for (ciclo = 1; ciclo <= n; anello ++)
{
risultato = risultato * ciclo;
}
ritorno risultato;
}
In questo esempio, il ciclo si ottiene utilizzando gli interi da 1 an, e l'istruzione loop <= n viene utilizzata come criterio per interrompere il ciclo successivo. Quindi, possiamo concludere che gli stessi risultati possono essere ottenuti usando una ricorsione e un'iterazione. Tuttavia, entrambi sono basati su approcci che sono leggermente diversi. Qualsiasi algoritmo ricorsivo può anche essere scritto usando iterazioni (cicli).
Confronto tra ricorsione e iterazione:
ricorsione | Iterazione | |
Definizione | La ricorsione si riferisce a una funzione ricorsiva in cui si chiama nuovamente a ripetere il codice. | L'iterazione è ottenuta da una funzione iterativa che esegue il loop per ripetere alcune sezioni del codice. |
Punto importante | Un caso base deve essere determinato | È necessario determinare una condizione di terminazione |
Prestazione | Comparativamente lento | Comparativamente veloce |
Utilizzo della memoria | Comparativamente di più | Comparativamente meno |
Codice | Più piccoli | Più a lungo |
Ripetizione infinita | La ricorsione infinita è in grado di arrestare il sistema in modo anomalo | Il loop infinito consuma ripetutamente i cicli della CPU |
Struttura | Selezione | Ripetizione |
Variabili locali | Non richiesto | necessario |