Iterativ und Rekursiv

Agenda

  • Intro
  • Rekursion
  • Fun With Mazes

Intro

Was ist Iterativ

mehrmaliges ausführen einer Aktion, während eine Bedingung wahr ist.

Schleifen sind Iterativ

  • while → solange bedingung true
  • do-while → solange bedingung true
  • for → solange bedingung true
  • for-each → bis break oder alle Elemente

Was ist Rekursiv?

mehrmaliges selbstausführen einer Aktion

die Aktion definiert selber, wann Sie sich nicht mehr selbst aufruft

Demo - Zahlen summieren

  • Iterativ
  • Rekursiv

Rekursion - Callstack

Aufruf OrtAufrufAufruf WertRückgabewert
Mainsum(5)5?
sum(5)sum(4)4?
sum(4)sum(3)3?
sum(3)sum(2)2?
sum(2)sum(1)11

Unterste Zeile ist der Base Case Fall

Rekursion - Callstack II

Aufruf OrtAufrufAufruf WertRückgabewert
Mainsum(5)55 + 10 → 15
sum(5)sum(4)44 + 6 → 10
sum(4)sum(3)33 + 3 → 6
sum(3)sum(2)22 + 1 → 3
sum(2)sum(1)11

Bonus: throw Error in Base Case

Rekursion

Bestandteile

  1. Base Case(s)
  2. Recurse

Base Case(s)

Alle Bedingungen, welche ein Endergebnis haben.

Recursion

  • Pre Recurse
  • Recurse
  • Post Recurse

revisit iterative sum

Demo - Binary Search Recursion

Fun with Mazes

Rest of the day

  • Problem und Datensatz
  • Search mit eigenem Problem Recursiv(Optional)