接触编程的人,肯定都接触过二分查找算法。这是一个很简单的算法,可是真的通过语言实现的时候,却有很多人写得不好。
今天写一个二分查找的java实现,编程小白可以看看。
public static int binarySearch(int[] a,int key){//首先方法的命名,不要随便乱写,最好能够一目了然
if(a.length==0){//数组必须是从小到大拍好序的
System.out.println("数组不能为空!");
return;
}
int low = 0;
int high = a.length - 1;//low和high分别是要查找的数组的边界
while(low<high){
int middle = (low+high)/2;
if(key==middle)
return middle;
else if(key<a[middle]){
high = middle - 1;
}
else{
low = middle + 1;
}
}
return -1;//while循环结束都没有找到,就返回-1,说明不存在
}