Rekursive binäre Suchmethode mit nur 2 Argumenten

8

Okay, das ist für einen Schulauftrag. Ich hatte keine Probleme, eine rekursive binäre Suche zu machen, aber die Zuweisung besagt ausdrücklich, dass die Methode nur zwei Argumente, die Liste und das Element, nach dem Sie suchen, haben soll. Dies ist, wo ich ein wenig verloren bin.

%Vor%

Das wird also gut funktionieren, wenn ich nicht nach etwas suche, das nicht existiert und es in die obere Hälfte der Liste gehört. Da ich nur 2 Argumente durchführe, muss ich die Liste mit jedem rekursiven Aufruf ändern. Wenn es jedoch in der oberen Hälfte ist, kann ich meinen Indexpunkt nicht verlieren, also muss ich diese mit dem rekursiven Aufruf hinzufügen, falls es endet nicht in der oberen Hälfte, dann gibt es -1 + all jene Indizes zurück, für die ich vorher verantwortlich war. Gibt es eine Möglichkeit, dass ich alles klären kann und es einfach -1 zurückgeben kann? Jede Beratung wird geschätzt.

    
John Powers 05.12.2011, 22:12
quelle

3 Antworten

2

Sie können zwei Methoden verwenden, wobei die eine die andere aufruft. Die öffentliche Methode macht die Zwei-Parameter-Schnittstelle verfügbar, die Ihre Hausaufgaben benötigen. Es kann auch nach Nullparametern suchen - die Art von Dingen, die nur einmal überprüft werden müssen, gleich zu Beginn.

Ihre zweite Methode ist privat und wird nur von Ihrer ersten Methode aus aufgerufen. Das ist Ihre rekursive Standard-Binärsuche mit so vielen Parametern, wie Sie benötigen.

    
rossum 05.12.2011, 23:19
quelle
3

Cache und testen Sie das Ergebnis des Funktionsaufrufs, wenn -1 zurückgeben, sonst berechnen und zurückgeben.

    
Nim 05.12.2011 22:15
quelle
2

Sie können prüfen, ob das Ergebnis des rekursiven binarySearch-Aufrufs in diesem Block -1 ist, bevor Sie die Indizes hinzufügen:

%Vor%     
mongiesama 05.12.2011 22:20
quelle

Tags und Links