import java.util.Scanner;
publicclass Test08 { //二分搜索递归
publicstatic void main(String[] args) {
try {
Scanner scan=new Scanner(System.in);
System.out.println("请输入元素的个数:");
int n=scan.nextint();
System.out.println("按顺序输入元素:");
int list[]=newint[n];
for (int i =0; i <=list.length-1; i++) {
String x = scan.next();
int m=Integer.parseint(x);
list[i] = m;
}
System.out.println("输入要查找的元素:");
int key=scan.nextint();
System.out.println(key+"的数组下标:"+binarySearch(list,0, list.length-1, key));
}
catch (Exception e) {
e.printStackTrace();
}
}
public staticint binarySearch(int[]value,int begin,int end,int key) {
while (begin <= end) {
int mid = (begin + end) /2;
if (value[mid] == key) {
return mid;
}
if (value[mid] > key) {
return Test08.binarySearch(value,begin,mid-1, key);
} else {
begin = mid + 1;
return Test08.binarySearch(value,mid+1,end, key);
}
}
return -1;
}
}