
I metodi ricorsivi ed i metodi iterativi sono di per sé simili, in quanto utilizzano entrambi utilizzo una struttura ripetitiva, caratterizzata da una condizione di uscita che termina l’esecuzione. La principale e fondamentale differenza, tuttavia, risiede nel fatto che un algoritmo iterativo presenta una struttura, quale un loop for, while o do-while, dove un’operazione viene eseguita e conclusa finché la condizione di uscita viene raggiunta. Un algoritmo ricorsivo, invece, richiama se stesso fino al raggiungimento della condizione di uscita, generando uno stack di chiamate che verrà chiuso a cascata, a partire dall’ultima chiamata generata, solo una volta che sarà raggiunta la condizione di uscita.
In generale, un algoritmo iterativo risulta spesso più leggibile, più facile da implementare e tendenzialmente meno incline a generare errori (anche grazie al meno peso che comporta sulla memoria). Di contro, però, gli algoritmi ricorsivi sono particolarmente adatti per risolvere determinati problemi, fornendo soluzioni semplici e facilmente implementabili, laddove altri algoritmi risultano eccessivamente complicati o addirittura impossibili da implementare.
Un esempio di algoritmo iterativo è il bubble sort (quasi tutti i sort sono algoritmi iterativi), mentre un esempio di algoritmo ricorsivo è il merge sort.