C-Programmierung
Iterationsbeispiel
← Rekursionsbeispiel | ● | Endrekursion →
Bei der Ausführung der rekursiven Fakultätsfunktion verbrauchen die Funktionsaufrufe einen Großteil der Zeit.
Die folgenden iterative Variante benötigt keine zusätzlichen Funktionsaufrufe und ist daher deutlich schneller:
$ n! = \prod_{i=1}^n i $
unsigned int factorial(unsigned int n)
{
unsigned int i,f;
for (f=1,i=1; i<n; i++) f*=i;
return(f);
}
{
unsigned int i,f;
for (f=1,i=1; i<n; i++) f*=i;
return(f);
}
Für die Fakultätsfunktion ist daher die iterative Variante vorzuziehen.
← Rekursionsbeispiel | ● | Endrekursion →