2017-10-22 4 views
0

Ich habe ein Problem mit der binären Suche. Ich möchte zu meiner Funktion den kleinsten (ersten welche Funktion erfüllt) Index des Suchwertes zurückgeben. Meine Funktion gibt manchmal einen zufälligen Indexwert zurück. Zum Beispiel, wenn ich 999999 wähle und im Array gibt es 2 Index dieses Wertes gibt es einen zufälligen Wert von diesen beiden. Wie man es repariert? Mein Code unten: https://paste.ofcode.org/MwzTMsrZF8ZdNNqh5em8FBBinäre Suche zufällige Ergebnisse

+0

ich durch https://stackoverflow.com/help/how-to-ask schlage vor zu gehen. Können Sie bitte einen Einzelfall mit minimalem Code und Beispieleingabe und -ausgabe angeben? – s5s

+0

Zum Beispiel: Eingabe 999998, Ausgabe: 999995 aber wenn ich array drucke, kann ich sehen, dass searchedValue 999998 auf Index 999994 und 999995 ist. Ich möchte die kleinste index, wo mein gesuchter Wert erscheint (in diesem Beispiel 999994) zurückgeben zufällig. Was soll ich ändern? – mty

Antwort

0

Sie müssen die binäre Suche, bis fortzusetzen vector[index] == searchValue && (index == 0 || vector[index - 1] != searchValue)