Iterativ bedeutet, dass du die Lösung eines Problems durch einen Algorithmus ausdrücken kannst, der quasi "von oben nach unten" durchläuft, wohingegen rekursive Programme sich immer wieder selber aufrufen.
Hier mal je ein Beispiel, vlt. wird es dann deutlicher:
Es soll ein Programm geschrieben werden, dass die n. Fibonacci-Zahl berechnet. Diese berechnet sich, in dem man ihre beiden Vorgänger addiert. Also quasi 0, 1, 1, 2, 3, 5, 8, 13, ....
|
Source code
|
1
2
3
4
5
|
algorithm fibonacci_rekursiv (int n)
if n < 2
return n
else
return fibonacci(n-1) + fibonacci(n-2)
|
hier wird quasi der algorithmus immer wieder selbst in sich aufgerufen, solange, bis der letzte Aufruf ein Ergebnis zurückbekommt, mit dem gearbeitet werden kann. Danach wird das ganze Aufrufe-Geflächt von hinten her aufgerollt und man bekommt das gewünschte Ergebnis zurück.
|
Source code
|
1
2
3
4
5
6
7
8
9
|
algorithm fibonacci_iterativ (int n)
int a = 0
int b = 0
while n>0 do
int c = a
a = b
b=b+c
n= n-1
return a
|
Hier sieht man schön, dass das Ergebnis am Ende durch eine Schleife innerhalb des hier-stehenden Algorithmus ermittelt wird. Der Algorithmus wird nur einmal aufgerufen (im Gegensatz zur rekursiven Variante) und liefert nach dem letzten Schleifendurchlauf sofort das gewünschte Ergebnis.
Ich hoffe es ist dir etwas klarer geworden. Wenn nicht, scheu dich nicht, nochmal zu fragen, denn das ist auch ziemlich schwer hier zu erklären. Vlt. hat ja jemand noch eine andere Variante, um das besser zu verdeutlichen.
VG
Florian