public class BinarySearch {
public static void main(String[] args) {
BinarySearch binarySearch = new BinarySearch();
int[] nums = {4,5,9,9,12,13,14,15,15,18};
System.out.println(binarySearch.binarySearch(nums, 10));
}
public int binarySearch(int[] nums, int target) {
// write your code here
int low = 0;
int high = nums.length-1;
return find(nums, low, high, target);
}
public int find(int[] num, int low, int high, int target) {
if (low == high && target == num[low]) {
return low;
}
int middle = (low + high)/2;
if (target >= num[low] && target <= num[middle]) {
return find(num, low, middle, target);
}
if (target > num[middle] && target <= num[high]) {
return find(num, middle+1, high, target);
}
return -1;
}
}
二分查找
最新推荐文章于 2022-04-09 09:41:32 发布