import java.util.Arrays;
import java.util.Scanner;
public class BinarySearch {
public static int rank(int key,int[] a){
//数组必须是有序的
int low=0;
int high=a.length-1;
while( low <= high ){
//被查找的值,要么不存在,要么不存在于a[low...high]之中
int mid=low+(high-low)/2;
if(key<a[mid]){
high=mid-1;
}
else if(key>a[mid]){
low=mid+1;
}
else{
return mid;
}
}
return -1;
}
public static void main(String[] args) {
int[] a={3,6,7,9,4};
//将数组排序
Arrays.sort(a);
Scanner cin=new Scanner(System.in);
System.out.println("Please input numbers:");
while(cin.hasNext()){
int k=cin.nextInt();
if(rank(k,a)>=0){
System.out.println("The array contains "+k);
}
else{
System.out.println("No such element");
}
}
}
}
//output example
Please input numbers:
1 3 5 7 9
No such element
The array contains 3
No such element
The array contains 7
The array contains 9