Ich habe ein Array von sortierten Ganzzahlen, und ich möchte die zwei aufeinanderfolgenden Indizes der Elemente, die einen bestimmten Wert binden, die ich in übergeben zu erhalten. Zur Veranschaulichung, weil es schwer in Worten zu beschreiben ist, nehmen wir an, ich habe ein Array (regulär null-indiziert):
1 3 4 5 7 9
Ich möchte die beiden Indizes ermitteln, die z. B. den Wert 6 begrenzen. In diesem Fall hat das Array die Werte 5 und 7 an aufeinanderfolgenden Positionen, die den gesuchten Wert begrenzen (5 <= 6 <= 7), und so würde ich den Index von 5 und den Index von 7 (3 bzw. 4) zurückgeben.
Ich habe dies derzeit in einer sehr Brute-Force-Mode implementiert, mit einer Menge von Sortierungen und Suchen im Array. Darüber hinaus habe ich das Gefühl, ich bin eine Menge von Eckfällen (vor allem mit Werten, die größer/kleiner als der größte/kleinste Wert im Array sind) fehlt.
Gibt es eine elegante Möglichkeit, dies zu tun? Auf welche Eckfälle sollte ich achten und wie kann ich damit umgehen bzw. sie überprüfen? Vielen Dank!