Die folgende Methode soll binäre Suche implementieren:
binsearch(x,i):
falls i in x[..] vorkommt,
dann x[p] = i, sonst p = - 1.
public static int binsearch (int [] x, int i) {
int n = x.length;
int low = 0;
int high = n;
while (low < high) {
int mid = (low + high) / 2;
if (i < x[mid]) {
high = mid;
} else if (i > x[mid]) {
low = mid;
} else {
return mid;
}
}
return -1;
}
Aufgaben:
binsearch enthält.
int [] x = { 3, 4, 6, 8, 9 };
int p = binsearch (x, 4);
assertTrue (p == ???);