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.
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.
Sie können prüfen, ob das Ergebnis des rekursiven binarySearch-Aufrufs in diesem Block -1 ist, bevor Sie die Indizes hinzufügen:
%Vor%Tags und Links java recursion binary-search