magicmarcy.de | Rekursion in Java – Einfach und schnell erklärt

Rekursion in Java – Einfach und schnell erklärt

20. Februar 2025 - Lesezeit: 2 Minuten

Die Rekursion ist ein grundlegendes Konzept in der Programmierung, das sich besonders für Probleme eignet, die sich in kleinere, gleichartige Teilprobleme zerlegen lassen. Es ist ein mächtiges Werkzeug, um Probleme elegant zu lösen. Dabei sind eine klare Abbruchbedingung und ein verständliches Rekursionsmuster sehr wichtig.

Rekursion bezeichnet dabei eine Methode, die sich selbst aufruft, bis eine bestimmte Abbruchbedingung erreicht ist.

Ein rekursiver Algorithmus besteht dabei aus zwei Hauptkomponenten:

  • Abbruchbedingung (Basisfall) – Diese verhindert eine unendliche Rekursion.
  • Rekursiver Fall – Hier wird die Methode erneut mit einem veränderten Argument aufgerufen, sodass das Problem schrittweise verkleinert wird.

Die Fakultätsberechnung zeigt gut, wie eine Methode sich selbst aufruft und das Problem in kleinere Teilprobleme zerlegt.

Die Fakultät einer Zahl n wird definiert als:

n! = n * (n - 1) * (n - 2) * ... * 1

Mit der rekursiven Definition:

  • n! = n * (n - 1)! für n > 0
  • 0! = 1 (Basisfall)

Implementierung in Java:

public class RekursionBeispiel {

    public static int fakultaet(int n) {
        // Basisfall: Sobald n 0 erreicht, stoppen wir die Rekursion
        if (n == 0) {
            return 1;
        }
        // Rekursiver Fall: n * fakultaet(n - 1)
        return n * fakultaet(n - 1);
    }

    public static void main(String[] args) {
        int zahl = 5;
        System.out.println(zahl + "! = " + fakultaet(zahl));
    }
}

Wenn wir also fakultaet(5) aufrufen, passiert folgendes:

5 * fakultaet(4)
4 * fakultaet(3)
3 * fakultaet(2)
2 * fakultaet(1)
1 * fakultaet(0), wobei fakultaet(0) = 1 der Basisfall ist

Dabei werden die Ergebnisse von unten nach oben zurückgegeben:

  • 1 * 1 = 1
  • 2 * 1 = 2
  • 3 * 2 = 6
  • 4 * 6 = 24
  • 5 * 24 = 120

Ergebnis: 5! = 120

Mir persönlich hat diese Schreibweise hier sehr für das Verständnis geholfen:

5! = 1 * 2 * 3 * 4 * 5 = 120 

Rekursion eignet sich also besonders bei Problemen mit natürlicher Selbstähnlichkeit. Man sollte Rekursion aber immer vermeiden, wenn zu viele rekursive Aufrufe entstehen könnten, sodass es in der Folge zu einer StackOverflowException kommt. In vielen Fällen kann eine iterative Lösung auch effizienter sein.

Ich hoffe sehr, dass dieses einfache Beispiel dir geholfen hat, Rekursion zu verstehen und wie man diese in Java-Code umsetzen kann. Nach diesem Beispiel solltest du in der Lage sein, eine rekursive Methode in Java schreiben zu können.

Hast du selbst schon mal mit Rekursion zu tun gehabt und vielleicht auch Schwierigkeiten gehabt, den Ablauf zu verstehen? Lass es mich gern in den Kommentaren wissen!

Es wurden noch keine Kommentare verfasst, sei der erste!

Support

Wenn du mich und meine Arbeit unterstützen möchtest, freue ich mich sehr über eine kleine Aufmerksamkeit in Form eines Kaffees ;-)



Weitere Informationen, wie du mich und meine Arbeit unterstützen kannst, findest du hier.