public class BinarySearch {
public static void main(String[] args) {
int arr[] = {1,2,3,4,5,6,7,8,9};
int target = 5;
int index = binSearch(arr,target);
System.out.println(index);
int low = 0;
int high = arr.length - 1;
int index2 = binarySearch(arr,target,low,high);
System.out.println(index2);
}
public static int binSearch(int arr[],int target){
int low = 0;
int high = arr.length - 1;
int mid = (low + high) / 2;
while(low <= high){
if(arr[mid] == target){
return mid;
}
if(target > arr[mid]){
low = mid + 1;
}else if(target < arr[mid]){
high = mid - 1;
}
mid = (low + high) / 2;
}
return -1;
}
private static int binarySearch(int array[],int target,int low,int high){
System.out.println("low" + low);
System.out.println("high" + high);
if(low > high){
return -1;
}
int mid = (low + high) / 2;
if(target > array[mid]){
return binarySearch(array,target,mid + 1,high);
}else if(target < array[mid]){
return binarySearch(array,target,low,mid - 1);
}else {
return mid;
}
}
}
Java用递归法和循环实现二分法查找
最新推荐文章于 2022-02-12 12:23:15 发布