第一种方法
public class Test07 {
public static void main(String[] args) {
int[] arr = {1,2,3,5,6,8,9,12,15,16,18,19,22,25,26};
System.out.println(er(arr,12));
}
public static String er(int[] arr,int x) {
int low = 0;
int high = arr.length-1;
while(low<=high) {
int middle = (low+high)/2;
if(x==arr[middle]) {
return "存在,下角标为:"+middle;
}
if(x<arr[middle]) {
high = middle-1;
}else if(x>arr[middle]) {
low = middle+1;
}
}
return "不存在";
}
}
第二种方法
public class Test07 {
public static void main(String[] args) {
int[] arr = {1,2,3,5,6,8,9,12,15,16,18,19,22,25,26};
int find = er(arr,1);
if(find==-1) {
System.out.println("不存在");
}else {
System.out.println("存在,下角标为:"+find);
}
}
public static int er(int[] arr,int x) {
int low = 0;
int high = arr.length-1;
while(low<=high) {
int middle = (low+high)/2;
if(x==arr[middle]) {
return middle;
}
if(x<arr[middle]) {
high = middle-1;
}else if(x>arr[middle]) {
low = middle+1;
}
}
return -1;
}
}