Non ho grossi fondamenti di teoria, ma praticamente, un algoritmo ricorsivo è un algoritmo che per trovare una soluzione "richiama se stesso" più volte, mentre un algoritmo iterativo risolve il problema in maniera "lineare". Ti faccio un esempio in codice, per calcolare per esempio il fattoriale di un numero (il fattoriale di n è il prodotto di tutti i numeri da 1 a n):
Iterativamente:
codice:
int fattoriale(int x)
{
int risultato = 1;
for (;x > 0; x--) risultato *= x;
return risultato;
}
Ricorsivamente:
codice:
int fattoriale(int x)
{
if (x==1) return 1;
else return x * fattoriale(x-1);
}