Rekursion

  • Beispiel Math: Euklid, Fakultät, nat. Zahlen
  • Beispiel Natur: Farn, Fraktale, Schneeflocken
  • Beispiel IT: rekursive Liste, Baum
  • Def: Ein Algorithmus/Datenstruktur heisst rekursiv definiert, wenn er sich selbst als Teil enthält oder mit Hilfe von sich selbst definiert ist.
  • Vorteil: Unendlichkeit endlich definieren, leserlich, Problemreduktion
  • Nachteil: Overhead bei Methodenaufruf, mehr Speicher
  • Direkt: Methode ruft sich selber auf
  • Indirekt: 2+ Methoden rufen sich gegenseitig auf
  • Endrekursiv: Letze Aktion ist rekursiver Aufruf - lässt sich einfach in iterative Form umwandeln (tail recursion)

Induktion

  • Programmäquivalent der vollständigen Induktion
  • Basisfall - Verankerung
  • Allgemeinerfall - Induktionsschritt
  • Basisfall ist Abbruchbedingung - sonst unendlich -> StackOverflowError

Komplexität

  • Reursionstiefe: max Tiefe - 1 somit 2 => rec(2)-> rec(1)-> rec(0)

results matching ""

    No results matching ""