CodeGym /Java-Blog /Random-DE /Java-Rekursion
John Squirrels
Level 41
San Francisco

Java-Rekursion

Veröffentlicht in der Gruppe Random-DE

Was ist Java-Rekursion?

Das Szenario, in dem sich eine Funktion oder Methode selbst aufruft, wird als Rekursion bezeichnet, und eine solche Funktion oder Methode wird als rekursive Funktion oder rekursive Methode bezeichnet. Dieser Ansatz wird immer verwendet, um komplexe Probleme in ein einfaches und leichter zu schreibendes Problem zu zerlegen. Ein einfaches Beispiel besteht darin, zwei Spiegel voreinander zu platzieren und sie beginnen, sich gegenseitig rekursiv zu reflektieren, was Sie leicht erkennen können.

Indirekte Rekursion

Das obige Beispiel stellt die indirekte Rekursion dar , d. h. Funktion eins ruft Funktion zwei auf und Funktion zwei ruft Funktion eins auf.

Direkte Rekursion

Wenn sich eine Methode immer wieder selbst aufruft, spricht man von direkter Rekursion .

Haltebedingung

Jetzt werden Sie sich fragen, ob eine Methode, die sich selbst immer wieder aufruft, mit Sicherheit einen Stapelüberlauffehler erleiden wird . Ja, Sie haben Recht, wie bei einer Endlosschleife kann es zu einer unendlichen Rekursion kommen. Wir müssen eine Basisbedingung oder eine Beendigungsbedingung bereitstellen, um diese unendliche Rekursion zu stoppen, die als Stoppbedingung bezeichnet wird. Diese Bedingung wird immer innerhalb der Rekursionsmethode bereitgestellt, was wir im folgenden Beispiel im Detail sehen werden.

Rekursionsbeispiel

class Recursion {

    static int factorial( int n ) {
        // base condition or termination condition
        if (n != 0)
        // here we are calling the recursive method
            return n * factorial(n-1);
        else
            return 1;
    }

    public static void main(String[] args) {
        // initializing the variables
        int number = 5, result;
        result = factorial(number);
        System.out.println(number + " factorial = " + result);

        // changing the value from 5 to 10
        number = 10;
        result = factorial(number); // recursive function call
        System.out.println(number + " factorial = " + result);
    }
}

Beispielausgabe

5 Fakultät = 120 10 Fakultät = 3628800
In diesem Beispiel einer rekursiven Methode haben wir eine Funktion, die von der Hauptmethode aufgerufen wird. Wir haben den Wert 5 übergeben, um zu sehen, was seine Fakultät ist, nämlich 120. Diese Fakultätsfunktion ruft sich selbst erneut auf, indem sie den Wert 4 übergibt, der erneut den Wert 3 aufruft und übergibt, und so weiter, bis die Haltebedingung erfüllt ist erfüllt, was dem Wert 0 entspricht. Das Gleiche passiert, wenn wir den Wert von 5 auf 10 ändern.

Vor- und Nachteile der Rekursion

Ein rekursiver Code ist einfach zu schreiben, zu debuggen und zu warten, was zeitsparend ist. Andererseits wird aber mit jedem Aufruf der Speicher für die Variablen verbraucht, und dadurch kann es passieren, dass uns der Speicher ausgeht.

Abschluss

Wir hoffen, dass Sie die Java-Rekursion und ihre Implementierung sowie ihre Vor- und Nachteile verstehen. Fühlen Sie sich frei, zu üben und zurückzukommen, wann immer Sie weitere Unterstützung benötigen. Viel Spaß beim Lernen!
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION