【编程题】二分查找(Java实现)
题目描述
从排序的数组中查找数,返回在数组中的位置,如果不存在则返回-1.
代码
import java.util.Scanner;
public class BinarySearch {
public static void main(String[] args){
int[] arr={1,3,4,7,8,9};
Scanner scanner=new Scanner(System.in);
while (true){
int num=scanner.nextInt();
System.out.println(binarySearch(arr,num));
}
}
public static int binarySearch(int[] arr,int num){
if(arr==null||arr.length<=0)
return -1;
int low=0,high=arr.length-1;
int mid=0;
while (low<=high){
mid=low+((high-low)>>1);
if(arr[mid]==num)
return mid;
else if(arr[mid]>num)
high=mid-1;
else
low=mid+1;
}
return -1;
}
}