/**
* 升序数组二分查找法
*
* @author XHQ
*
*/
public class TowPointSearch {
public static void main(String[] args) {
int array[] = { 1, 2, 3, 4, 5, 6, 9 };
searchFunction(array, 10);
}
/**
* 数组的二分查找法
* @param array 数组
* @param obj 需要查找的整数
* @return
*/
public static void searchFunction(int[] array, int obj) {
int fastIndex = 0;//左端下标
int index;//中间下标
int endIndex = array.length;//右端下标
while (fastIndex != endIndex) {
// 获取中间值下标
index = fastIndex + (endIndex - fastIndex) / 2;
if (obj != array[index]) {//判断是否查询成功
if (obj > array[index]) {
fastIndex = index+1;
} else {
endIndex = index;
}
} else {//已经查询成功
System.err.println("查询成功:"+obj+"在数组的第"+(index+1)+"个元素");
return;
}
}
//没有查询到
System.err.println("该数组没有"+obj+"元素");
}
}