Need Help Aufgrund der Krankheit konnte ich die Vorlesung letzte Woche nicht besuchen und die Folien verstehe ich auch nicht so ganz. Wer kann mir da helfen ??
Im Internet habe ich dazu sehr wenig gefunden.
Bedanke mich voraus Aufgabe 1 - Binäre Suche
Gegeben sei die folgende rekursive Methode:
int findIndex(int number, int[] values, int begin, int end)
{
int step = (end-begin)/2;
if (values[begin] == number)
return begin;
if (step == 0)
return -1;
if (values[begin+step] <= number)
return findIndex(number, values, begin+step, end);
else
return findIndex(number, values, begin, begin+step);
}
Aufgabe 1a) Sie implementiert die binäre Suche in einem aufsteigend sortierten Array aus Ganzzah-
len mit Hilfe von Rekursion. Ihre Parameter sind wie folgt:
• number: Ganzzahl, die im Array gesucht werden soll.
• values: Sortiertes Array, das durchsucht werden soll.
• begin: Array-Index, an dem die Suche startet.
• end: Array-Index, an dem die Suche endet. Wird selbst nicht mehr betrachtet
(nicht einschließlich).
Die Methode gibt den Index zur¨uck, an dem die gesuchte Zahl gefunden wurde oder
−1, falls die Zahl nicht im Array enthalten ist.
Aufgabe 1 b)
Beschreiben Sie, wie die Methode arbeitet. Gehen Sie dabei besonders auf die Abbruch-
bedingung und die rekursiven Aufrufe ein. Es soll klar werden, warum die Methode ge-
rade so implementiert wurde. Eine Umschreibung des Quellcodes in Worten (Beispiel:
“Die Rekursion bricht ab, wenn values an der Stelle begin gleich number ist”) ist nicht
ausreichend. |