二分查找也是经典算法之一了,就不做解释,直接上代码
public static int search(int[] a,int target){ int left=0; int right=a.length-1; while (left <= right) {//注意是" <= " int mid=left+((right-left)/2);//等同于(left+right)/2,这里这么些是防止溢出 if(a[mid]>target){ right=mid-1; }else if (a[mid]<target){ left=mid+1; }else { return mid; } } return -1; }