二分搜索法基本思想
将n个元素分成个数大致相同的两半,
取a[n/2]与x进行比较。
如果x=a[n/2],
则找到x算法终止,
如果x<x[n/2],
则在数组的右边部分继续搜索,
如果x<x[n/2]
则在数组的左边部分继续搜索
public class Divide {
public static int binarySeach(int []a,int x){
int left=0;
int right=a.length-1;
while(left<=right){
int middle=(left+right)/2;
if(x==a[middle]) return middle;
if(x<a[middle]) right=middle-1;
else left=middle+1;
}
return -1;
}
public static void main(String args[]){
int[] src = new int[] {1, 3, 5, 7, 8, 9};
System.out.print(binarySeach(src, 3));
}
}