C++ Rekursion
Rekursion
Rekursion ist die Technik, einen Funktionsaufruf selbst durchzuführen. Diese Technik bietet eine Möglichkeit, komplizierte Probleme in einfache Probleme zu zerlegen, die leichter zu lösen sind.
Rekursion ist möglicherweise etwas schwer zu verstehen. Der beste Weg, herauszufinden, wie es funktioniert, besteht darin, damit zu experimentieren.
Rekursionsbeispiel
Das Addieren zweier Zahlen ist einfach, das Addieren eines Zahlenbereichs ist jedoch komplizierter. Im folgenden Beispiel wird die Rekursion verwendet, um einen Zahlenbereich zu addieren, indem sie in die einfache Aufgabe zerlegt wird, zwei Zahlen zu addieren:
Beispiel
int sum(int k) {
if (k > 0) {
return k + sum(k - 1);
} else {
return 0;
}
}
int main() {
int result = sum(10);
cout << result;
return 0;
}
Try it Yourself »
Beispiel erklärt
Wenn die Funktion sum()
aufgerufen wird, fügt sie den Parameter k
zur Summe aller Zahlen hinzu kleiner als k
und gibt das Ergebnis zurück. Wenn k 0 wird, gibt die Funktion einfach 0 zurück. Bei der Ausführung führt das Programm die folgenden Schritte aus:
10 + ( 9 + sum(8) )
10 + ( 9 + ( 8 + sum(7) ) )
...
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + sum(0)
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0
Da sich die Funktion nicht selbst aufruft, wenn k
0 ist, stoppt das Programm an dieser Stelle und gibt das Ergebnis zurück.
Der Entwickler sollte bei der Rekursion vorsichtig sein, da es sehr leicht passieren kann, dass er eine Funktion schreibt, die niemals beendet wird oder übermäßig viel Speicher oder Prozessorleistung verbraucht. Wenn die Rekursion jedoch richtig geschrieben ist, kann sie ein sehr effizienter und mathematisch eleganter Ansatz für die Programmierung sein.