二分查找 普通实现和递归实现
public class BinarySearch {
public static void main(String[] args) {
int[] nums = new int[]{5,9,7,3,6,41,58,3,99};
Arrays.sort(nums);
int ver = binarySearchRecursion(3,nums,0,nums.length-1);
System.out.println(Arrays.toString(nums));
System.out.println(ver);
}
private static int binarySearch(int num, int[] nums,int start,int end) {
int st = start;
int en = end;
while (st<en){
int mid = (en+st)/2;
if (nums[mid]==num) return mid;
else if (nums[mid]<num) st = mid+1;
else en = mid-1;
}
return -1;
}
private static int binarySearchRecursion(int num, int[] nums,int start,int end) {
int mid = (start+end)/2;
if (nums[mid]==num) return mid;
else if (nums[mid]<num) return binarySearchRecursion(num,nums,mid+1,end);
else return binarySearchRecursion(num,nums,start,mid-1);
}
}