Algorithmuspro
Rekursion: Fakultät
Eine Funktion, die sich selbst mit einer kleineren Eingabe aufruft, bis sie einen Fall direkt beantworten kann.
- Zeit
- O(n)
- Speicher
- O(n)
// Schritt für Schritt
Schritt 1 / 11
1function factorial(n) {2 if (n <= 1) return 1;3 return n * factorial(n - 1);4}- depth
- = 1
- factorial(4)
Rufe factorial(4) auf.
// pro-lektion
Den ganzen Durchlauf freischalten
Diese Lektion ist Teil von Pro. Pro schaltet jeden Schritt jeder Lektion frei, dazu Muster-Übungen und Fortschrittsauswertungen.
Preise ansehenSo funktioniert es
factorial(4) kann nicht sofort antworten, also fragt es factorial(3), das wiederum factorial(2) fragt, und so weiter. Jeder wartende Aufruf liegt auf dem Aufrufstapel. Wenn factorial(1) den Basisfall erreicht und 1 zurückgibt, fließen die Antworten nach oben zurück, und jeder wartende Aufruf beendet seine Multiplikation. Jede rekursive Funktion braucht einen Basisfall und einen Schritt, der die Eingabe verkleinert. O(n) Zeit und O(n) Speicher für den Aufrufstapel.
Dieses Muster erkennen üben →