折半查找

[java]
private static int binarySearch(int[] array, int value){
//初始化左右指针
int left = 0;
int right = array.length - 1;

//两个指针相遇后结束遍历
while(left <= right){

//取中间值下标
int index = left + (right - left)/2;

if(value == array[index]){
//目标值与相同中间值,返回
return index;
}else if(value < array[index]){
//目标值小于中间值,右指针改为中间值位置-1
right = index - 1;
}else{
//目标值大于于中间值,左指针改为中间值位置+1
left = index + 1;
}
}
return -1;
}
[/java]