Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:algorithmen:teile_und_herrsche:arraysumme:start [26.01.2022 20:23] – [Rekursion! Teile und herrsche...] sbel | faecher:informatik:oberstufe:algorithmen:teile_und_herrsche:arraysumme:start [26.01.2022 21:03] (aktuell) – [Rekursion! Teile und herrsche...] sbel | ||
---|---|---|---|
Zeile 21: | Zeile 21: | ||
**Was ist der direkt lösbare Basisfall für dieses Problem?** Wie muss ein Array beschaffen sein, damit man die Summe aller Array Elemente unmittelbar erkennen kann? | **Was ist der direkt lösbare Basisfall für dieses Problem?** Wie muss ein Array beschaffen sein, damit man die Summe aller Array Elemente unmittelbar erkennen kann? | ||
- | ++++ Antwort: | Wenn das Array die Länge 0 oder 1 hat, ist das Ergebnis sehr einfach zu ermitteln: Im Falle des leeren Arrays ist die Summe 0, im Fall des Arrays mit der Länge 1 ist die Summe der Wert des Array-Elements. | + | ++++ Antwort: | Wenn das Array die Länge 0 oder 1 hat, ist das Ergebnis sehr einfach zu ermitteln: Im Falle des leeren Arrays ist die Summe 0, im Fall des Arrays mit der Länge 1 ist die Summe der Wert des einzigen |
++++ | ++++ | ||
+ | Um das Teile-und-Herrsche Prinzip anwenden zu können muss man sich nun einen Rekursionsfall überlegen, der uns dem Basisfall, dem " | ||
+ | Wie kann man also beispielsweise die folgende Situation so verändern, dass die zur Summe aus kleineren Array(s) führt? | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ++++ Antwort: | | ||
+ | Zum Beispiel so: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ++++ | ||
+ | |||
+ | Die Funktionsweise kann man also dem folgenden Flussdiagramm, | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Das ist nun wieder eine klassische Rekursion, deren Aufrufe alle auf dem Call-Stack landen, bis der Basisfall erreicht ist. Erst dann können die vorigen Aufrufe abgeschlossen werden. | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (A2) === | ||
+ | |||
+ | Implementiere die rekursive Methode '' | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (A3) === | ||
+ | |||
+ | Schreibe eine rekursive Methode zum Ermitteln der größten Zahl im Array. |