int binarySearch(int[] a, int key) {
int imin = 0;
int imax = a.length-1;
while (imax >= imin) {
int imid = midpoint(imin, imax);
if (a[imid] < key)
imin = imid + 1;
else if (a[imid] > key )
imax = imid - 1;
else
return imid;
}
return -1;
}