二分查找(java)
public class BinarySearch {
public static void main(String[] args) {
int[] a = {1, 2, 3, 4};
System.out.println(binarySearch(a, 0, a.length - 1, 3));
}
public static int binarySearch(int[] array, int low, int high, int target){
while(high >= low){
int mid = (low + high) / 2;
int tmp = array[mid];
if(tmp < target){
low = mid + 1;//若array为降序则为high = mid - 1;
}
else if(tmp > target)
high = mid - 1;//若array为降序则为low = mid + 1;
else
return mid;
}
return -1;
}
}