import java.util.Arrays;
import java.util.Scanner;
/**
* Created by Enzo Cotter on 2018/11/29.
*/
public class FindValue {
public static void main(String[] args) {
int[] a = {5, 9, 12, 14, 20, 33, 34, 52, 76, 86, 99, 102};
System.out.println("请输入您要查找得数字:");
Scanner input = new Scanner(System.in);
int x = input.nextInt();
System.out.println("在" + Arrays.toString(a) + "中查找");
Find (a, 0, a.length - 1, x);
}
public static void Find(int[] a, int left, int right, int x) {
while (left <= right) {
int mid = (left + right) / 2;
int i = 0;
int j = a.length-1;
if (x == a[mid]) {
i = j = mid;
System.out.println("您所要查找得值在第" + (i + 1) + "个位置");
break;
}
if (x > a[mid]) {
left = mid + 1;
if (x < a[left]){
System.out.println("不存在查找值,比查找值小的最大元素在第" + (mid + 1) + "个位置," + "比查找值大的最小元素在第" + (mid + 2) + "个位置");
break;
}
}
if (x < a[mid]) {
right = mid - 1;
if (x > a[right]) {
System.out.println("不存在查找值,比查找值小的最大元素在第" + mid + "个位置," + "比查找值大的最小元素在第" + (mid + 1) + "个位置");
break;
}
}
if (x > a[j]){
System.out.println("不存在比查找值大的元素,比查找值小的最大元素在第" + (j + 1) + "个位置");
break;
}
if (x < a[i]){
System.out.println("不存在比查找值小的元素,比查找值大的最小元素在第" + (i + 1) + "个位置");
break;
}
}
}
}