二分查找要点:
三个参数:mid、low、high
import java.util.Arrays;
public class BinarySearch {
public static int rank(int key,int []a) {
int lo=0;
int hi=a.length-1;
while(lo<=hi) {
int mid=(lo+hi)/2;
if(key==a[mid])
return mid;
else if(key>a[mid])
lo=mid+1;
else if(key<a[mid])
hi=mid-1;
}
return -1;
}
public static void main(String args[]) {
int a[]={5,3,6,8,2,7,4,1};
System.out.println(rank(8,a));
}
}