Lernpfad:Rekursion in Java/Selbst eine rekursive Methode schreiben: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
Zeile 26: Zeile 26:


Natürlich lässt sich auch eine Methode für die Anzahl der Kästchen programmieren. Die Beobachtungen aus den Beispielen für ein 2x2, 3x3 und 4x4-Gitter können bei der Formulierung einer rekursiven Formel helfen.
Natürlich lässt sich auch eine Methode für die Anzahl der Kästchen programmieren. Die Beobachtungen aus den Beispielen für ein 2x2, 3x3 und 4x4-Gitter können bei der Formulierung einer rekursiven Formel helfen.
Aber dieses Problem lässt sich auch sehr gut iterativ lösen.
Aber dieses Problem lässt sich auch ohne Weiteres iterativ lösen.


{{Aufgabe:Start}}
{{Aufgabe:Start}}
Zeile 56: Zeile 56:
== Binäre Suche rekursiv ==
== Binäre Suche rekursiv ==


Die Möglichkeiten zur Suche ein einem Array ist dir schon bekannt. Sind die Daten nicht vorsortiert, dann muss die ''lineare Suche'' angewandt werden, liegen die Daten sortiert vor, dann kann die Suche mit der ''binären Suche'' beschleunigt werden.
Die Möglichkeiten zur Suche in einem Array ist dir schon bekannt. Sind die Daten nicht vorsortiert, dann muss die ''lineare Suche'' angewandt werden, liegen die Daten sortiert vor, dann kann die Suche mit der ''binären Suche'' beschleunigt werden.


Die binäre Suche lässt sich auch gut rekursiv umsetzen: Der Algorithmus zerlegt das Problem in zwei (in etwa) gleichgroße Teilprobleme. Das eine kann sofort entschieden werden: Es enthält das gesuchte Element auf keinen Fall. Auf den anderen Teil wird derselbe Algorithmus wieder angewandt. So lange, bis das Element gefunden wurde, oder bis das aktuelle Teilproblem leer ist.
Die binäre Suche lässt sich rekursiv umsetzen: Der Algorithmus zerlegt das Problem in zwei (in etwa) gleich große Teilprobleme. Das eine kann sofort entschieden werden: Es enthält das gesuchte Element auf keinen Fall. Auf den anderen Teil wird derselbe Algorithmus wieder angewandt. Solange, bis das Element gefunden wurde, oder bis das aktuelle Teilproblem leer ist.


{{Aufgabe:Start}}
{{Aufgabe:Start}}
Implementiere die rekursive binäre Suche in einer Methode mit der Signatur
Implementiere die rekursive binäre Suche in einer Methode mit der Signatur


<pre>
<syntaxhighlight lang="java">
public int binaereSucheRekursiv( int suchzahl, int[] sucharray, int von, int bis )
public int binaereSucheRekursiv( int suchzahl, int[] sucharray, int von, int bis )
</pre>
</syntaxhighlight>


Die Methode soll als Ergebnis die Position des Elements im Array zurückgeben, oder <code>-1</code>, wenn es nicht vorhanden ist.
Die Methode soll als Ergebnis die Position des Elements im Array zurückgeben, oder <code>-1</code>, wenn es nicht vorhanden ist.


Überlegen sie sich zunächst konkret, wie die drei Bestandteile der Rekursion hier aussehen müssen.
Überlege zunächst konkret, wie die drei Bestandteile der Rekursion hier aussehen müssen.
{{Aufgabe:End}}
{{Aufgabe:End}}
{{Lösung:Start}}
{{Lösung:Start}}
8.581

Bearbeitungen