Stark an dem Wiki-Artikel orientiert, habe ich nun Folgendes:
[code=Java]public int searchInArray(int indexStart, int indexEnd, int searchedNumber, int[] array){
if( indexStart > indexEnd){
if( searchedNumber < array[indexStart] ) return (indexEnd + 1) * (-1) -1;
if( searchedNumber > array[indexStart] ) return (indexStart +1) * (-1) -1;
}
int indexMiddle = indexStart + ( (indexEnd - indexStart) / 2 );
if( searchedNumber < array[indexMiddle] ){
return searchInArray( indexStart, indexMiddle - 1, searchedNumber, array);
}
if( searchedNumber > array[indexMiddle] ){
return searchInArray( indexMiddle + 1, indexEnd, searchedNumber, array );
}
return indexMiddle;
}[/code]
Ich habe mir das an zwei, drei Beispielen mal angesehen und m.E. haut es hin.
Am PC habe ich's allerdings noch nicht getestet, sondern nur händisch.
LG Dennis
[Ein Feedback ist wie immer willkommen.
]