/**
*
* 对分查找
*
* @author wangli
* @param args
*/
public static void main(String[] args) {
int[] num = { 2, 5, 18, 19, 29, 43, 57, 61, 37, 85 };
Scanner input = new Scanner(System.in);
System.out.print("请输入要查询的数:");
int flag = input.nextInt();
int index1 = 1; // 开始位置
int index2 = num.length - 1; // 结束位置
boolean con = false; // 是否找到此数的标志
int p = ((index1 + index2) / 2);
do {
if (flag == num[p]) {
con = true;
System.out.println("您要查找数的索引位置是:" + p);
} else {
if (flag > num[p]) {
index1 = p + 1;
} else {
index2 = p - 1;
}
}
} while (index2 < index1);
if (!con) {
System.out.print("此数组中没有您要查找的数!");
}
}