Hi Leute,
hab nen kleines Problem, ich versuche gerade die binäre Suche im Array rekursiv zu lösen, klappt soweit
ganz gut, aber mein Programm bringt mir immer dann nen StackOverflowError, wenn ein Wert nicht im Array ist, aber nur wenn es in dem Bereich zwischen dem kleinsten und größten Wert im Array liegt.
Was kann ich tun damit bei diesem Fall einfach ne Ausgabe kommt, dass der Wert nicht gefunden wurde.
hab nen kleines Problem, ich versuche gerade die binäre Suche im Array rekursiv zu lösen, klappt soweit
ganz gut, aber mein Programm bringt mir immer dann nen StackOverflowError, wenn ein Wert nicht im Array ist, aber nur wenn es in dem Bereich zwischen dem kleinsten und größten Wert im Array liegt.
Was kann ich tun damit bei diesem Fall einfach ne Ausgabe kommt, dass der Wert nicht gefunden wurde.
Java:
public static void main(String[] args) {
if(a < array[0] || a > array[array.length-1]){
System.out.println("Nicht vorhanden!!!");
}else{
binaereSuche(array, a, 0, array.length);
}
}
public static void binaereSuche(int[] suchArray, int d, int start, int ende){
int mitte = start+(ende-start)/2;
if(suchArray[mitte] == d){
System.out.println("Gefunden!!!" + d);
}else if(suchArray[mitte] > d){
binaereSuche(suchArray, d, start, mitte-1);
}else if(suchArray[mitte] < d){
binaereSuche(suchArray, d, mitte+1, ende);
}
}