查找算法之二分查找
采用二分查找一个有序数组中的值,二分查找使用与有序数组,所以数组必须得是有序的。
//二分查找
//给定一个有序数组,请使用尽可能高效的算法查找一个目标值target,如果存在返回true,否则返回false
public class BinarySearch {
public static void main(String[] args) {
int[] arr = {1,2,4,5,7,8,10,11,14,24,55,55};
int target=55;
System.out.println(binarySearch(arr, target, 0, arr.length-1));
}
public static boolean binarySearch(int arr[],int target,int low,int high){
while(low<high){
int flag = (low+high)/2;
if(arr[flag]==target) return true;
else if(arr[flag]>target) {
high=flag-1;
continue;
}
else if(arr[flag]<target) {
low = flag+1;
continue;
}
else if(low==flag && arr[high]==target) return true;
}
return false;
}
}