cuchulainn
Mitglied
Hallo,
und ich habe ein weiteres Problem. Ich soll eine binäre Suche in mein Programm einbauen. Ich habe also eine sortierte Menge. Die Mitte wird ermittelt. Entweder befindet sich die gesuchte Zahl in der unteren oder der oberen Hälfte. Die Hälfte, in der es sich befinden soll, wird noch einmal geteilt, usw.
Mein Quelltext sieht folgendermaßen aus:
Das Programm funktioniert ganz gut. Leider endet es in einer Endlosschleife, wenn die gesuchte Zahl sich nicht in dem Array feld befindet.
Sieht von euch jemand den Fehler?
Gruß
Cuchulainn
und ich habe ein weiteres Problem. Ich soll eine binäre Suche in mein Programm einbauen. Ich habe also eine sortierte Menge. Die Mitte wird ermittelt. Entweder befindet sich die gesuchte Zahl in der unteren oder der oberen Hälfte. Die Hälfte, in der es sich befinden soll, wird noch einmal geteilt, usw.
Mein Quelltext sieht folgendermaßen aus:
Code:
public int binSuche(int a){
int mitte = 0;
int unten = 0;
int oben = feld.length;
insertionSort();
while (unten < oben) {
mitte = (unten + oben) / 2;
if (feld[mitte] == a) {
return feld[mitte];
}
else {
if (a < feld[mitte]) {
oben = mitte;
}
else if (a > feld[mitte]) {
unten = mitte;
}
}
}
return -1;
}
Sieht von euch jemand den Fehler?
Gruß
Cuchulainn