条件:二分查找只适用于从有序的数列中查找数字或字符,将数组排序后在查找
代码:
public class erFenFeiDIGui {
public static void main(String[] args) {
int arr[]={1,8,59,520,1314};
int index=binarySearch(arr,1314);
System.out.println(index);
}
public static int binarySearch(int []arr,int target){
int left=0;
int right=arr.length-1;
while (left<=right){
int mid=(left+right)/2;
if (arr[mid]==target){
return mid;
}else if (arr[mid]>target){
//需要向左边查找
right=mid-1;
}else {
left=mid+1;
}
}
//都不符合返回-1
return -1;
}
}