二分查找
参考代码:
public int binSearch(int[] a, int target){
int lower = 0;
int high = a.length - 1;
while(lower <= high){
int mid = lower + (high - lower) / 2;
if(a[mid] > target)high = mid - 1;
else if(a[mid] < target) lower = mid + 1;
else return mid;
}
return -1;
}
前提条件:数组必须有序。
时间复杂度: O(logN)